在我的规范中,我正在监视像这样的模拟服务
spyOn(mockService, 'method').and.returnValue(
value1
);
比同样的规格,我想做
spyOn(mockService, 'method').and.returnValue(
value2
);
但它告诉我mockService.method
已经被监视过了。
如何让现有的间谍返回一个新值?
如果我mockService.method.and.returnValue(value2)
我收到类型错误。我可以做mockService as Spy
,但是对于间谍来说,是否有一种更直接的回归方式?
答案 0 :(得分:0)
虽然我强烈建议您尝试编写规范,以便将两个模拟的需要分成两个单独的it
块,但您可能只需捕获在mockService上模拟的方法即可。然后在做第二次模拟之前重新分配它。
EG。
let originalMethod = mockService.method;
spyOn(mockService, 'method').and....
// later,
mockService.method = originalMethod;
spyOn(mockService, 'method).and ......