茉莉花和andreturnValue方法可以考虑一个参数

时间:2017-03-15 14:37:14

标签: angular jasmine

在我的组件中,我正在做:

this.thing = this._service.foo('a');
this.otherThing = this._service.foo('b');

在我的测试中,我使用了这样创建的service模拟:

mockService = jasmine.createSpyObj('Service', ['foo']);

使用'a''b'调用模拟器时,如何控制模拟返回的值? 因为如果我做

mockService.foo.and.returnValue('value');

使用'a''b'

调用时,它会返回相同的内容

1 个答案:

答案 0 :(得分:2)

您可以使用and.callFake()

mockService.foo.and.callFake(function (arg) {
    if (arg == "a") {
        return "value1";
    } else {
        return "value2";
    }
    // or whatever
});