这个问题通常是由于异步测试中未使用异步的原因引起的。以下是一个使用async/await解决该问题的示例:
test('fetches data from server', async () => {
const { getByTestId } = render(
);
await wait(() => { // wait for response
expect(getByTestId('result')).toBeInTheDocument();
});
});
在例子中,使用了Jest内置的wait()
方法来等待一个异步操作的结束。当所有的数据准备好后,该函数将resolve()
,expect()
函数会被调用。
请注意,在使用Apollo和Jest进行测试时,我们需要等待请求的结果,await确保了请求成功后再继续执行测试用例。