AngularJS测试:Jasmine模拟回调
我有基本的JS知识,但我对Jasmine单元测试非常陌生。 我的问题如下: 我需要测试一个服务方法(来自myService的方法): 如何模拟anotherService.anotherMethod以返回结果并测试myService.method的其余部分?例如,我需要检查testFunction是否已使用“param”调用(使用expect(myFunction)toHaveBeenCalledWith(“param”))AngularJS测试:Jasmine模拟回调,angularjs,testing,callback,jasmine,Angularjs,Testing,Callback,Jasmine,我有基本的JS知识,但我对Jasmine单元测试非常陌生。 我的问题如下: 我需要测试一个服务方法(来自myService的方法): 如何模拟anotherService.anotherMethod以返回结果并测试myService.method的其余部分?例如,我需要检查testFunction是否已使用“param”调用(使用expect(myFunction)toHaveBeenCalledWith(“param”)) 谢谢你的帮助你可以用Jasmine Spies做这件事,但我建议使用S
谢谢你的帮助你可以用Jasmine Spies做这件事,但我建议使用Sinon,因为它支持更多功能 相关文件如下: 如果你没有使用Sinon的自由,这里有一张茉莉花间谍的秘籍: . 如本文所述
var testPerson = new Person();
spyOn(testPerson, "getName");
testPerson.toString();
expect(testPerson.getName).toHaveBeenCalledWith("param");
我想做的是为我的AJAX调用创建一个假函数,并使用其中一个参数:
spyOn(anotherService, 'anotherMethod').and.CallFake(function(){
//Get args : fake result of AJAX call and callback
var fakeResult = arguments[0];
var callback = arguments[1];
return callback(fakeResult);
});
谢谢,但是我没有添加/删除库的自由,我需要用jasmine来做这件事!我需要模拟anotherService.anotherMethod及其结果,因为它执行AJAX调用。您是否使用http服务执行此操作?是的。对不起,我想我的问题不是很清楚。。。我把答案贴在下面。
spyOn(anotherService, 'anotherMethod').and.CallFake(function(){
//Get args : fake result of AJAX call and callback
var fakeResult = arguments[0];
var callback = arguments[1];
return callback(fakeResult);
});