Unit-test mit spy nicht. Sagt der Spion war nie genannt
Dies ist der code, den ich Teste
eventsApp.factory('userData', ['userResource', function(userResource){
return{
getUser: function(userName, callback){
return userResource.get({userName:userName}, function(user){
if(callback)
callback(user);
});
};
}]);
- Und das ist die Jasmin-test für es
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'});
}));
});
Warum ist dieser Fehler? Es sagt
"Erwartet Spion zu bekommen, haben die schon genannt mit [ { userName : 'Bob' } ]
aber es war nie genannt".
.toHaveBeenCalled()
auch nicht.
InformationsquelleAutor gaoban | 2014-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie nicht setzen Sie den Spion, bevor Sie die GET-Anforderung?
EDIT: Die Arrange-Act-Assert-Muster 😉
InformationsquelleAutor glepretre