使用Jest测试React组件时的UnhandledPromiseRejectionWarning

时间:2020-03-06 17:59:21

标签: javascript reactjs jestjs react-testing-library

所以我想用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');
});

在模拟异步功能时也许会丢失某些东西吗?

1 个答案:

答案 0 :(得分:0)

请在代码中输入代码,而不是图片。

使用async / await时,您不会处理诺言被拒绝的情况。在try / catch中包裹您的等待。

以下是jest文档的链接,重点突出了这一点:Jest Async