【问题标题】:test react component that use query and subscription with apollo client通过 apollo 客户端测试使用查询和订阅的反应组件
【发布时间】:2021-05-28 04:20:43
【问题描述】:

有没有人有关于通过 apollo 客户端测试使用查询和订阅的反应组件的提示?似乎当您将 <MockedProvider /> 组件与 mockslink 道具一起使用时,它只是忽略了模拟。 感谢您的帮助!

【问题讨论】:

    标签: javascript reactjs testing jestjs apollo


    【解决方案1】:

    除非你有充分的理由,否则你不应该弄乱 MockedProvdierlink 属性。 MockedProvider 中使用的默认链接是MockLink,它管理为给定查询生成模拟的逻辑。像这样对apollo docs 中给出的示例进行建模,它应该可以工作:

    import TestRenderer from 'react-test-renderer';
    import { MockedProvider } from '@apollo/client/testing';
    import { GET_DOG_QUERY, Dog } from './dog';
    
    const mocks = [
      {
        request: {
          query: GET_DOG_QUERY,
          variables: {
            name: 'Buck',
          },
        },
        result: {
          data: {
            dog: { id: '1', name: 'Buck', breed: 'bulldog' },
          },
        },
      },
    ];
    
    it('renders without error', () => {
      const component = TestRenderer.create(
        <MockedProvider mocks={mocks} addTypename={false}>
          <Dog name="Buck" />
        </MockedProvider>,
      );
    
      const tree = component.toJSON();
      expect(tree.children).toContain('Loading...');
    });
    

    【讨论】:

      猜你喜欢
      • 2017-12-25
      • 2019-01-18
      • 2020-04-11
      • 2018-07-08
      • 2021-06-01
      • 2017-12-01
      • 2022-12-12
      • 2019-04-28
      • 2021-09-04
      相关资源
      最近更新 更多