Javascript 使用Jest测试React组件时出现未处理的PromisejectionWarning
所以我想用Jest和React测试库测试我的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
登录组件。
测试通过,但我收到了:
“未处理的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中封装测试中的哪个函数?