【发布时间】:2014-03-03 07:21:41
【问题描述】:
这是我正在测试的代码
eventsApp.factory('userData', ['userResource', function(userResource){
return{
getUser: function(userName, callback){
return userResource.get({userName:userName}, function(user){
if(callback)
callback(user);
});
};
}]);
这是茉莉花测试
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'});
}));
});
为什么会失败?它说
“预期的 spy get 已被调用 [ { userName : 'Bob' } ] 但它从未被调用”。
.toHaveBeenCalled() 也失败了。
【问题讨论】:
标签: javascript angularjs unit-testing jasmine