首页 > 解决方案 > React Apollo 的 MockedProvider 模拟 refetch() 函数

问题描述

使用 MockedProvider 我们可以模拟非常直接的输出,例如

let mocks = [{
    request: { query: DATA_QUERY, variables: {...} }
    result: {
        data: {...},
        refetch: () => console.log('refetch mocked') 
    }
}]
<MockedProvider mocks={mocks} addTypename={false}>
    <ComponentToTest />
</MockedProvider>

这在执行时给了我成功的模拟输出DATA_QUERY

<Query query={DATA_QUERY} variables={...} fetchPolicy='cache-and-network' >
      {({data, refetch}) => refetch()
</Query>

哪个应该登录refetch mocked控制台,这在我的情况下没有发生。可能不是模拟refetch函数的正确方法,是吗?如果没有,有没有办法使用模拟refetch函数MockedProvider

感谢期待

标签: javascriptreactjsunit-testinggraphqlreact-apollo

解决方案


推荐阅读