该错误通常表示您的测试代码中缺少一个mock,并尝试在测试中模拟查询。解决此问题的一个常见方法是在MockedProvider中添加一个默认的mock,以确保所有查询都有指定的响应。以下是一个示例:
import { MockedProvider } from "@apollo/client/testing";
import { render } from "@testing-library/react";
const mocks = [
{
request: {
query: YOUR_QUERY,
},
result: {
data: { YOUR_DATA },
},
},
];
it("renders without error", async () => {
await act(async () => {
render(
);
});
});
在这个例子中,我们首先定义了一个mock,它将返回指定的数据。然后,我们在我们的测试中使用MockedProvider
包装YourComponent
并将mocks作为props传递。请注意,我们还使用了addTypename={false}
,因为这可以防止某些常见的错误。最后,我们使用render
来呈现我们的组件并等待它完成。
这样,你的测试应该会成功,并返回预期的结果。