首页 文章

GraphQL测试模式和解析器

提问于
浏览
1

WHAT I TRIED
我正在使用JEST来测试解析器和模式但我在创建文件夹和结构时遇到了麻烦 . 目前我导入了解析器函数并调用函数并比较结果或检查字段是否已定义 . 但它有时不满足复杂的场景 .

WHAT I AM LOOKING FOR

测试graphql架构和解析器函数的最佳实践,以及推荐或主要使用的测试工具是什么?

2 回答

  • 1

    有多个框架用于集成测试您的API使用例如YAML文件 . 在那里,您可以指定请求和响应 . 一种更简单的方法可以是使用Jest快照,只需使用 graphql-js 中的 graphql 函数执行测试查询 . 它将返回一个带有结果的promise,然后你可以 await 它并期望它与快照匹配 .

    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)可以是found on my Github .

  • 1

    此外,您可以尝试这个将测试您的架构,查询和突变的npm包...有一个使用mocha&chai的示例..这里是link

    您需要做的是导入架构并传递给 easygraphql-tester 然后您可以创建UT .

相关问题