您好我正在Angular JS
开发网络应用程序。我正在使用Jasmine
框架编写单元测试用例。我想嘲笑一些服务。我无法使用多个参数调用服务。下面是我的单元测试代码。
it('update is allowed false', async(() => {
let service = fixture.debugElement.injector.get(UserOnboardEndpointMock);
spyOn(service, 'updateUser').and.callThrough();
fixture.whenStable().then(() => {
expect(service.updateUser).toHaveBeenCalledWith(jasmine.any(true,"101"));
})
}));
以下是我的服务。
updateUser<T>(event: boolean, userid: string): Observable<T>{
var updateUserResult = { result: true } as any;
return Observable.of<T>(updateUserResult);
}
我已经尝试过如下呼叫服务,但没有成功。
expect(service.updateUser).toHaveBeenCalledWith(true,"101");
expect(service.updateUser).toHaveBeenCalledWith([true]["101"]);
有人可以帮助我拨打我的模拟服务吗?任何帮助,将不胜感激。谢谢
答案 0 :(得分:0)
从 jest 23.0 开始就有 .toHaveBeenNthCalledWith(nthCall, arg1, arg2, ....) https://facebook.github.io/jest/docs/en/expect.html#tohavebeennthcalledwithnthcall-arg1-arg2-
所以你可以做出这样的断言:
expect(service.updateUser).toHaveBeenNthCalledWith(1, true,"101");