GraphQL节点JS App的单元测试

时间:2017-03-01 21:59:24

标签: node.js graphql graphql-js

我开发了一个带有自定义解析器的graphql node js app。任何人都可以向我指出一些文档,其中说明了如何正确地为我的服务编写单元测试?或者,如果某人之前已经做过,并且可以指出我正确的方向,这将是伟大的!

2 个答案:

答案 0 :(得分:0)

为了测试服务的每个端点,您需要使用适当的有效负载对指定的URL执行GET操作。有效负载应该是包含三个属性的对象

  • query - 这是一个将在服务器端运行的GraphQL查询
  • operationName - 要运行的查询的操作名称
  • 变量 - 在查询中使用

为了测试您的终端,您可以使用supertest等模块来执行POSTPUTimport request from 'supertest'; let postData = { query: `query returnUser($id: Int!){ returnUser(id: $id){ id username email } }`, operationName 'returnUser', variables: { id: 1 } }; request(graphQLEndpoint) .post('?') .send(postData) .expect(200) // status code that you expect to be returned .end(function(error, response){ if ( error ) console.log(error); // validate your response }); 等请求。

query

通过这种方式,您可以通过使用具有适当属性的等效mutation对象执行POST个请求来测试您的服务所包含的每个postDatafixup()。要将所有这些测试包装在一起,您可以使用在Mocha之类的Node.js下使用断言库的任何测试框架。

答案 1 :(得分:0)

我们在如何测试我们的GraphQL SailsJS应用程序时遇到了同样的问题。 chaimochasupertest的组合似乎是最佳解决方案。在this article中有一个完整的示例,说明如何配置所有内容和完整的测试示例,因此请查看它以更好地了解如何执行此操作。此外,关于mochachaisupertest的文档也很有用。