我有一个带有两个函数的角度服务,我想测试是否使用参数'x'调用函数1调用了函数2。
通过以下测试:
describe('myFunction1', function() {
it('Should call myFunction2 if parameter is 'x'', function() {
spyOn(myService, 'myFunction2');
myService.myFunction1('x');
expect(myService.myFunction2).toHaveBeenCalled();
});
});
我的间谍没有检测到该功能的任何更改
function myFunction1(param) {
if(param === 'x') {
myFunction2();
}
}
但是如果我将功能更改为以下,则间谍可以正常工作,(但是实际应用程序中断了,所以这不是解决方案。
function myFunction1(param) {
if(param === 'x') {
this.myFunction2();
}
}
答案 0 :(得分:0)
没有看到您的完整服务或测试文件,听起来myFunction2
不是公共功能。
如果您的服务不包含以下内容:
return {
myFunction1: myFunction1,
myFunction2: myFunction2
};
...然后,您将不得不寻找另一种监视param === 'x'
结果的方法。