我有如下方法
service.myMethod(reqBody,true, false, false, (success) => {
},(failure)=>{
});
我想窥探这个方法并想模拟成功回调,我已经尝试了以下方法
const service = TestBed.get(Service);
spyOn(service, 'myMethod').and.callFake(function (reqBody, success,error) {
return success({});
});
它的投掷成功不是功能。 还尝试了以下
spyOn(service, 'myMethod').and.callFake(function (reqBody,true,false,false, success,error) {
return success({});
});
显示编译错误。
答案 0 :(得分:0)
在以下解决方案中 boolean1,boolean2,boolean3会收到值“ true,false,false”,但是您不能在函数级别定义这些值。
spyOn(service, 'myMethod').and.callFake(function (reqBody, boolean1, boolean2, boolean3, success, error) {
return success({});
});
答案 1 :(得分:0)
以这种方式执行间谍工作,它会搜索success(),这显然在您的代码中不可用。这里没有加载依赖项,这意味着该服务正在作为独立组件运行。
要测试服务,请单独编写该服务的测试,这里您可以使用.and.returnvalue()或.and.returnvalues()代替,这将返回您想要的任何内容。请检查其文档以获取更好的主意(https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.returnValue%3C/code%3E)
否则,请在上面的测试文件中编写一个公共成功函数,并将其声明为公共。