Jest Angular测试登录异常



如何专门测试登录异常。

submit() {
const { username, password } = this.loginForm.value;
this.store.dispatch(new Login({ username, password }))
.subscribe(
() => {
},
catchError(() => throwError(new Error(ToastCode.LOGIN_FAILED)))
);
}

到目前为止,我的测试是有效的,但代码覆盖率告诉我也要测试错误处理。

到目前为止我的测试:

it('should submit the login form', () => {
const data = {
username: 'test@test.de',
password: 'test123'
} as Credentials;
component.loginForm.patchValue({ ...data });
component.submitLoginForm();
expect(store.dispatch).toHaveBeenCalledWith(
new Login({ ...data })
);
});

但我不知道如何添加一个检查异常的测试。

您可以使用函数expect(submit()).toThrow(TypeError);

我想你有一个商店的间谍。dispatch,如果你这样做,你可以做

mySpy.and.throwError('error ...')

然后你可以使用

expect(submit()).toThrow(TypeError);

在测试中调用submit((之后

相关内容

最新更新