0

我有如下方法

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({});
    });

它显示编译错误。

4

2 回答 2

0

间谍不会以这种方式工作,它会搜索成功(),这显然在您的代码中不可用。此处未加载依赖项意味着该服务作为独立组件工作。

要测试服务,请单独编写服务测试,在这里您可以使用 .and.returnvalue() 或 .and.returnvalues() 代替,这将返回您想要的任何内容。请检查其文档以获得更好的想法(https://jasmine.github.io/2.0/introduction.html#section-Spies:_%3Ccode%3Eand.returnValue%3C/code%3E

否则在上面的测试文件中编写一个公共成功函数并将其声明为公共。

于 2019-10-19T14:39:33.430 回答
0

在以下解决方案中 boolean1、boolean2、boolean3 将接收值“true、false、false”,但您无法在函数级别定义值。

spyOn(service, 'myMethod').and.callFake(function (reqBody, boolean1, boolean2, boolean3, success, error) {
    return success({});
});
于 2019-10-19T11:49:35.627 回答