Graphql 阿波罗模拟错误状态->;错误:查询不再有模拟响应
我想做什么? 使用Graphql 阿波罗模拟错误状态->;错误:查询不再有模拟响应,graphql,apollo,react-apollo,react-testing-library,Graphql,Apollo,React Apollo,React Testing Library,我想做什么? 使用@apollo/client/testing中的MockProvider模拟查询的错误状态 我希望得到什么? 组件使用useLazyQuery从后端查询内容,并返回错误,这将触发组件呈现错误消息 组件正在按预期工作 我到底得到了什么? 错误:Uncaught[错误:查询不再有模拟响应…并且测试未通过 我试过什么? 最终状态按预期工作。我尝试删除模拟数据中的错误状态,一切正常 我试着再等一段时间,但没用 我尝试在组件中记录错误,我可以看到错误。看起来MockProvider缺少某
@apollo/client/testing
中的MockProvider
模拟查询的错误状态
我希望得到什么?
组件使用useLazyQuery
从后端查询内容,并返回错误
,这将触发组件呈现错误消息
组件正在按预期工作
我到底得到了什么?
错误:Uncaught[错误:查询不再有模拟响应…并且测试未通过
我试过什么?
数据
部分,或者将其添加回模拟中。请参见下面的代码<MockedProvider addTypename={false} mocks={mocks}>
...
</MockedProvider>
...
根据经验,我发现不需要在结果中嵌套error字段来触发错误
e、 g
那么当使用
const { loading, data, error } = useQuery(GET_REFERRER_FROM_CODE, {
variables: { input: "edx" },
});
错误
将包含模拟中的对象。您找到解决方案了吗?
<MockedProvider addTypename={false} mocks={mocks}>
...
</MockedProvider>
const mocks = [
{
request: { query: GET_REFERRER_FROM_CODE, variables: { input: "edx" } },
error: {
message: "Something went wrong",
},
}
];
const { loading, data, error } = useQuery(GET_REFERRER_FROM_CODE, {
variables: { input: "edx" },
});