我正在为一个组件编写测试,该组件使用React Query with Jest、React测试库和Axios模拟适配器(所有请求都通过Axios发送)
我想确保axios返回500错误时出现错误消息,我的测试完成了这一点-
但问题是,实际出现错误大约需要8秒钟
以下是测试:
it("should show error message when bad request returned", async () => {
mock.onGet("/url-example").reply(500);
renderWithProvider(
<TestContactUsComponent/>
);
expect(screen.getByTitle(/loading spinner/i)).toBeInTheDocument();
await waitForElementToBeRemoved(
() => screen.getByTitle(/loading spinner/i),
{ timeout: 10000 }
);
await expect(screen.queryByTestId("simple-error")).toBeInTheDocument();
}, 10000);
我从useQuery中记录了状态,然后返回
loading
大约7-8秒,然后最终返回错误,移除微调器并呈现错误消息。
有没有办法减少这项工作所需的时间?来自axios mock adapter的200个请求的测试几乎立即完成,因此不确定为什么500个错误场景需要这么长时间。
就组件的正常行为而言,它会在大约一秒钟内呈现错误消息,因此我认为这不是组件本身的问题。