Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS测试:Jasmine模拟回调_Angularjs_Testing_Callback_Jasmine - Fatal编程技术网

AngularJS测试:Jasmine模拟回调

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

我有基本的JS知识,但我对Jasmine单元测试非常陌生。 我的问题如下:

我需要测试一个服务方法(来自myService的方法):

如何模拟anotherService.anotherMethod以返回结果并测试myService.method的其余部分?例如,我需要检查testFunction是否已使用“param”调用(使用expect(myFunction)toHaveBeenCalledWith(“param”))


谢谢你的帮助

你可以用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);
});