如何使用来自 GraphQL 的模拟数据测试 React 应用程序?

Posted

技术标签:

【中文标题】如何使用来自 GraphQL 的模拟数据测试 React 应用程序?【英文标题】:How to test a React app with mock data from GraphQL? 【发布时间】:2018-01-30 23:24:35 【问题描述】:

我有一个简单的 React 应用程序,我在其中测试了一个组件,该组件从 'user' 属性中的 GraphQL 获取用户数据。该应用程序是用 TypeScript 编写的,我已经从自省查询生成了类型定义。

如何在不必手动模拟用户的每个字段的情况下测试该组件?我已经从类型生成中获得了 Graphql 架构,所以应该很容易吧?

有这篇文章http://graphql.org/blog/mocking-with-graphql/#mocking-is-easy-with-a-type-system 说它只需要 2 行代码,但我无法让它工作,我找不到适合 mockServer 的文档。

然后是 graphql-tools (http://dev.apollodata.com/tools/graphql-tools/mocking.html),但这些示例都没有真正起作用...

我使用apollo-codegen introspect-schema 生成架构。

是否有任何工作示例?

【问题讨论】:

【参考方案1】:

你可以试试这个包https://www.npmjs.com/package/easygraphql-mock

只需传递您拥有的架构,它将模拟所有类型和字段。在你模拟它之后,你可以访问你想要的类型。

【讨论】:

以上是关于如何使用来自 GraphQL 的模拟数据测试 React 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何模拟 graphQL/Apollo 查询响应以在 redux 中测试 action-creator?

使用 Jest、Graphql 和 Sequelize 测试数据库时如何避免 EADDRINUSE

如何在 Gatsby 中对 GraphQL 查询进行单元测试

如何使用模拟的 graphql API 和外部服务的 GraphQL 端点

运行 e2e 测试时在 cypress 中模拟特定的 graphql 请求

自定义针对 graphql-tools 中的类型定义的模拟数据