Javascript 使用Jest测试React组件时出现未处理的PromisejectionWarning

Javascript 使用Jest测试React组件时出现未处理的PromisejectionWarning,javascript,reactjs,jestjs,react-testing-library,Javascript,Reactjs,Jestjs,React Testing Library,所以我想用Jest和React测试库测试我的登录组件。 测试通过,但我收到了: “未处理的PromisejectionWarning” 我如何摆脱这个消息 这是我在测试文件顶部模拟的函数: jest.mock('../../../api/endpoints/auth/login/login', () => { return { login: jest.fn() }; }); 这是测试中直接使用的函数: (login as jest.Mock).mockResolvedVa

所以我想用Jest和React测试库测试我的
登录
组件。
测试通过,但我收到了:

“未处理的PromisejectionWarning”

我如何摆脱这个消息

这是我在测试文件顶部模拟的函数:

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');
});

也许我在模拟异步函数时遗漏了什么?

请将代码放在问题中,而不是图片中

在使用async/await时,您没有处理拒绝承诺的情况。用一个try/catch来包装你的等待


这里是jest文档的链接,强调了这一点:

请以文本形式提供代码。对不起,我已将图片更改为代码块。我应该在try-catch中封装测试中的哪个函数?