0

我正在尝试在 Jest 中测试一些 api 调用,但是测试失败,因为 api 调用依赖于首先完成的另一个调用,因此返回的值是空的,而不是应该在那里的值。我正在使用 react-query 进行 api 调用。还是有更好的或其他方法来测试异步调用?我也在使用 MSW 来拦截 api 调用。

异步调用

const getApi = async (): Promise<any> => {
   const response = await axios.get(`https://www.xxxxx`).then(res => res.data);
   return response;
}

测试

const queryClient = new QueryClient()

describe('Comp1 tests', (): void => {
    beforeEach(() => {
        jest.useFakeTimers();
    });


    it('Should give correct response with render', async () => {
        renderWithQueryClient(<QueryClientProvider client={queryClient}><Comp1 /></QueryClientProvider>);
        expect(await screen.findByTestId('main-header')).toBeInTheDocument();
    });
});

我得到:

无法通过以下方式找到元素:[data-testid="main-header"]

4

0 回答 0