带有callFake的模拟功能返回诺言不会输入then()

时间:2019-02-25 21:57:49

标签: angularjs typescript testing jasmine karma-jasmine

我有相同的方法调用,并且正在尝试编写测试以模拟methodB()中的MyService.getSoemthing。但是,它似乎不起作用。

methodA(): any {
    methodB().then(() => {
        do something...
    })
}

methodB(): ng.IPromise<void> {
    return MyService.getSomething(a,b,c,d,e).then((result) => {
        ...does something with result...
        doesn't returning anything
    });
}

// With MyServiceMock injected
spyOn(MyServiceMock, 'getSomething').and.callFake(() => {
    return $q.resolve(result); // result is a variable that has already been init
});

or 

spyOn(MyServiceMock, 'getSomething').and.callFake((a,b,c,d,e) => {
    return $q.resolve(result); // result is a variable that has already been init
});

// then I call my methodA and ..
methodA();

它根本无法工作..我能够调试,直到模拟的解决,它可以解决诺言,但永远不会出现在我的**内……对结果有好处... ** < / p>

有什么想法吗?

0 个答案:

没有答案