Unité de test avec spy est un échec. Dit espion n'a jamais été appelé

C'est le code que je teste

eventsApp.factory('userData', ['userResource', function(userResource){
    return{
    getUser: function(userName, callback){
        return userResource.get({userName:userName}, function(user){
        if(callback)
        callback(user);
        });

    };
}]);

Et c'est le Jasmin test pour elle

describe('userData', function(){
    var mockUserResource;

    beforeEach(module('eventsApp'));

    beforeEach(function(){
        mockUserResource = {get: function(){} };

        module(function($provide){
            $provide.value('userResource', mockUserResource);
        });
    });

    it('should make a call to userResource.get with provided userName', inject(function(userData){

        userData.getUser('Bob');
        spyOn(mockUserResource, 'get');
        expect(mockUserResource.get).toHaveBeenCalledWith({userName:'Bob'});
    }));
});

Pourquoi est-ce une faute? Il dit

"Attendu espion pour avoir été appelé avec [ { nom d'utilisateur : 'Bob' } ]
mais il n'a jamais été appelé".

.toHaveBeenCalled() échoue également.

OriginalL'auteur gaoban | 2014-03-03