所以我想用Jest and React Testing Library测试我的Login
组件。
测试通过,但我收到:
“ UnhandledPromiseRejectionWarning”。
我如何摆脱此消息?
这是我在测试文件顶部模拟的功能:
jest.mock('../../../api/endpoints/auth/login/login', () => {
return {
login: jest.fn()
};
});
这是直接在测试中使用的功能:
(login as jest.Mock).mockResolvedValueOnce(() => ({
messages: ["Password is not correct"],
isError: true
}));
act(() => {
fireEvent.click(submitButton, leftClick);
});
await wait(() => {
expect(getByTextLogin("Password is not correct")).toBeInTheDocument();
expect(window.location.href).toContain('/login');
});
在模拟异步功能时也许会丢失某些东西吗?
答案 0 :(得分:0)
请在代码中输入代码,而不是图片。
使用async / await时,您不会处理诺言被拒绝的情况。在try / catch中包裹您的等待。
以下是jest文档的链接,重点突出了这一点:Jest Async