GraphQL测试模式和解析器
我尝试的GraphQL测试模式和解析器,graphql,Graphql,我尝试的 我使用JEST测试解析程序和模式,但在创建文件夹和结构时遇到问题。目前我导入解析程序函数和调用函数,并比较结果或检查是否定义了字段。但它有时不能满足复杂的场景 我在寻找什么 测试graphql模式和解析器函数的最佳实践,以及推荐或主要使用的测试工具是什么?有多个框架可用于集成测试API,例如使用YAML文件。您可以在那里指定请求和响应。一种更简单的方法是使用Jest快照,并使用graphql js中的graphql函数简单地执行测试查询。它将返回一个带有结果的承诺,然后您可以等待它并期
我使用JEST测试解析程序和模式,但在创建文件夹和结构时遇到问题。目前我导入解析程序函数和调用函数,并比较结果或检查是否定义了字段。但它有时不能满足复杂的场景 我在寻找什么
测试graphql模式和解析器函数的最佳实践,以及推荐或主要使用的测试工具是什么?有多个框架可用于集成测试API,例如使用YAML文件。您可以在那里指定请求和响应。一种更简单的方法是使用Jest快照,并使用
graphql js
中的graphql
函数简单地执行测试查询。它将返回一个带有结果的承诺,然后您可以等待它并期望它与快照匹配
import { graphql } from 'graphql';
import schema from './schema';
import createContext from './createContext';
describe('GraphQL Schema', () => {
let context;
before(() => {
context = createContext();
database.setUp();
});
after(() => {
database.tearDown();
});
it('should resolve simple query', async () => {
const query = '{ hello }';
const result = await graphql(schema, query, null, context);
expect(result).toMatchSnapshot();
});
});
Tipp:您还可以创建动态测试,例如,从目录中的文件读取查询,然后对它们进行迭代,为每个文件创建一个新的测试。这方面的一个例子(不是GraphQL)可以是。此外,您可以尝试这个npm包,它将测试您的模式、查询和突变。。。这里有一个使用摩卡和柴的例子。。这是你的电话号码
您需要做的是导入模式并传递到easygraphql测试仪,然后您可以创建UT。没有推荐的方法。专门用于文档和文件夹结构 就我而言,我正在做这件事。这是我第一层的文件夹结构:
src/
├── App.js
├── configs
├── helpers
├── index.js
├── middlewares
├── models
├── resolvers
├── routes
├── schema
├── seeds
├── templates
├── tests
└── utils
在根目录中,我有一个test文件夹,主要用于检查应用程序的基本行为和一些utils函数。另一方面,在解析器中,我主要测试GraphQl、查询和突变
src/resolvers/
├── camping
│ ├── camping.mutations.js
│ ├── camping.query.js
│ ├── camping.query.test.js
│ └── camping.resolver.js
├── clientes.resolver.js
├── guest
│ ├── guest.mutation.js
│ ├── guest.mutation.test.js
│ ├── guest.query.js
│ ├── guest.query.test.js
│ └── guest.resolver.js
├── index.js
├── turno
│ ├── turno.mutations.js
│ ├── turno.query.js
│ ├── turno.query.test.js
│ └── turno.resolver.js
└── users
├── user.mutations.js
├── user.mutations.test.js
├── user.queries.js
├── user.query.test.js
└── user.resolver.js
每个解析器都有自己的测试,您可以在那里检查基本端点是否按预期工作
我计划做一些工作流测试,稍后它们将放在测试根文件夹中。您想要什么类型的测试?我对GraphQL的感觉是,只有集成测试才是真正值得的,因为如果您编写单元测试,您需要编写数百行代码来创建一个模拟环境来测试一行代码(至少这是代码中解析器的平均长度)是的,我更专注于整合测试。谢谢你,伙计。回购协议已经过时了。你的例子是不可缩放的。