如何使用Mocha和Chai单元测试graphql查询/变异错误?

时间:2018-08-13 03:04:26

标签: graphql graphql-js

由于graphql错误不是标准的Error。这是GraphQLError

graphql查询/变异引发异常时,我不知道如何编写单元测试。

这是我的尝试:

it('should throw an error when lack of "id" argument for user query', async () => {
    const body = {
      query: `
        query user{
          user {
            id
            name
          }
        }
      `
    };

    try {
      const actualValue = await rp(body);
    } catch (err) {
      logger.error(err);
    }

    // logger.info(actualValue);
    expect(1).to.be.equal(1);
    // expect(actualValue).to.throw()
  });

我在graphql.js回购中发现了一些测试。 https://github.com/graphql/graphql-js/blob/master/src/tests/starWarsQuery-test.js#L393

但是我认为他们测试query/mutation错误的方式不正确。

他们只是在错误上做得很深。但是在运行测试套件之前,我怎么知道像locations: [{ line: 5, column: 13 }],这样的错误数据结构?

1 个答案:

答案 0 :(得分:0)

检查此软件包https://github.com/EasyGraphQL/easygraphql-tester,文档中有一个包含mocha和chai的示例