【问题标题】:Apollo-Graphql testingApollo-Graphql 测试
【发布时间】:2020-10-05 23:29:12
【问题描述】:

我正在使用client.query() 方法从服务器查询。 我想使用 MockProvider 为这个功能编写测试。

由于client.query() 的异步性质,我面临问题

// I am writing the  query as follow
const { data, loading } = await client.query({
    query: Todo,
    variables: { name },
    fetchPolicy: 'cache-first'
})
      
      

【问题讨论】:

  • 你应该发布你的测试

标签: javascript graphql react-apollo apollo-client


【解决方案1】:

您可以使用MockProviderreact-testing-library 来测试您的反应组件。阅读更多关于MockProviderhere的信息。

试试这个:

import { act, fireEvent, render } from '@testing-library/react'
import { MockedProvider } from '@apollo/react-testing'

import YourComponent from './path'

const mocks = [
	{
		request: {
			query: Todo,
			variables: {
				query: { name },
			},
		},
		result: {
			data: {
				mockData_here
			},
		},
	},
]

test('it should ...', () => {
  let rendered
  await act(async () => {
    rendered = render(
      <MockedProvider mocks={mocks} addTypename={false}>
          {YourComponent}
      </MockedProvider>
    )
  })
  expect(rendered).toMatchSnapshot()
})

【讨论】:

  • 您能否分享一个具有嵌套查询的组件示例,因为我在运行组件中的嵌套查询时遇到了问题。单个查询的组件运行良好
  • @NITINMODI nested query 是什么意思?
  • 执行第一个查询,然后从中获取数据,然后在前一个查询的数据上循环另一个查询
猜你喜欢
  • 2019-06-12
  • 2017-06-02
  • 2019-06-30
  • 2019-09-24
  • 2022-07-15
  • 2019-07-22
  • 2022-07-10
  • 2018-03-20
  • 2019-06-17
相关资源
最近更新 更多