Apollo MockedProvider没有返回预期的数据
创始人
2024-09-09 04:30:42
0

如果使用Apollo MockedProvider时没有返回预期的数据,可能有以下几种解决方法:

  1. 检查查询/变异的名称和参数:确保在MockedProvider中使用的查询/变异名称和参数与组件中的实际查询/变异名称和参数匹配。例如,如果组件使用了名为GET_USERS的查询,那么在MockedProvider中也应该使用名为GET_USERS的查询。
// 组件中的查询
const { loading, error, data } = useQuery(GET_USERS, {
  variables: { id: 1 },
});

// MockedProvider中的查询
const mocks = [
  {
    request: {
      query: GET_USERS,
      variables: { id: 1 },
    },
    result: {
      data: {
        users: [{ id: 1, name: 'John' }],
      },
    },
  },
];
  1. 确保MockedProvider包装了被测试组件:确保被测试的组件被正确地包装在MockedProvider中。这可以通过在测试代码中使用render函数来实现。
// 测试代码
import { render, screen } from '@testing-library/react';
import { MockedProvider } from '@apollo/client/testing';
import { MyComponent } from './MyComponent';

it('should render with mocked data', async () => {
  const mocks = [
    {
      request: {
        query: GET_USERS,
        variables: { id: 1 },
      },
      result: {
        data: {
          users: [{ id: 1, name: 'John' }],
        },
      },
    },
  ];

  render(
    
      
    
  );

  // 断言代码
});
  1. 使用waitFor函数等待数据加载完成:在测试代码中,可以使用waitFor函数来等待数据加载完成。这可以确保在断言之前,组件已经接收到了预期的数据。
// 测试代码
import { render, screen, waitFor } from '@testing-library/react';
import { MockedProvider } from '@apollo/client/testing';
import { MyComponent } from './MyComponent';

it('should render with mocked data', async () => {
  const mocks = [
    {
      request: {
        query: GET_USERS,
        variables: { id: 1 },
      },
      result: {
        data: {
          users: [{ id: 1, name: 'John' }],
        },
      },
    },
  ];

  render(
    
      
    
  );

  await waitFor(() => {
    expect(screen.getByText('John')).toBeInTheDocument();
  });
});

通过检查查询/变异的名称和参数,确保正确地包装被测试组件,并使用waitFor函数等待数据加载完成,你应该能够解决Apollo MockedProvider没有返回预期数据的问题。

相关内容

热门资讯

一分钟揭秘!潮友会鱼虾蟹有没有... 一分钟揭秘!潮友会鱼虾蟹有没有挂辅助,柳州天天爱字牌辅助器,详细器(有挂教程)1、实时潮友会鱼虾蟹有...
发现玩家!朋朋政和辅助,闲逸辅... 发现玩家!朋朋政和辅助,闲逸辅助器下载,详细app(有挂秘笈)1、玩家可以在闲逸辅助器下载线上大神俱...
玩家爆料!四川长牌皮皮游戏挂,... 玩家爆料!四川长牌皮皮游戏挂,微信牵手跑辅助,详细方法(真是有挂)该软件可以轻松地帮助玩家将四川长牌...
研究成果!牵手跑得软件,大咖娱... 研究成果!牵手跑得软件,大咖娱乐挂脚本,详细教程(有挂方法)一、大咖娱乐挂脚本游戏安装教程牌型概率发...
必知教程!微友圈app辅助工具... 必知教程!微友圈app辅助工具,微信小程序挂件辅助,详细脚本(讲解有挂)微信小程序挂件辅助破解侠是真...
实测分享!潮汕鱼虾蟹app源码... 实测分享!潮汕鱼虾蟹app源码,开心泉州小程序辅助免费下载,详细器(有挂透视)开心泉州小程序辅助免费...
今日头条!光明大厅透视辅助,天... 今日头条!光明大厅透视辅助,天天透视辅助工具,详细插件(有挂详细)1、许多玩家不知道天天透视辅助工具...
盘点一款!扣点点脚本辅助器,乐... 盘点一款!扣点点脚本辅助器,乐酷副厅外挂,详细工具(有挂方法)扣点点脚本辅助器是不是有人用挂微扑克w...
推荐十款!微乐云南小程序辅助器... 推荐十款!微乐云南小程序辅助器,边锋嘉兴辅助,详细挂(有挂总结)一、微乐云南小程序辅助器可以开透视的...
三分钟了解!微信小程序雀神挂件... 三分钟了解!微信小程序雀神挂件辅助,同城上饶辅助,详细脚本(有挂教学)1、微信小程序雀神挂件辅助辅助...