如何专门测试登录异常。
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((之后