由于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 }],
这样的错误数据结构?