【发布时间】:2017-07-21 10:34:45
【问题描述】:
我开发了一个带有自定义解析器的 graphql node js 应用程序。谁能指点我一些文档,其中说明了如何为我的服务正确编写单元测试?或者,如果有人以前做过并且可以为我指出正确的方向,那就太好了!
【问题讨论】:
标签: node.js graphql graphql-js
我开发了一个带有自定义解析器的 graphql node js 应用程序。谁能指点我一些文档,其中说明了如何为我的服务正确编写单元测试?或者,如果有人以前做过并且可以为我指出正确的方向,那就太好了!
【问题讨论】:
标签: node.js graphql graphql-js
为了测试您的服务的每个端点,您需要使用适当的有效负载对指定的 URL 执行POST 操作。有效载荷应该是一个包含三个属性的对象
为了测试您的端点,您可以使用supertest 之类的模块,它允许您执行GET、POST、PUT 等请求。
import 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
});
通过这种方式,您可以通过使用具有适当属性的等效postData 对象执行POST 请求来测试您的服务包含的每个query 和mutation。要将所有这些测试打包在一起,您可以使用任何在 Node.js 下运行的测试框架,例如 Mocha,并使用断言库。
【讨论】:
我们在寻找测试 GraphQL SailsJS 应用程序的正确方法时遇到了同样的问题。 chai、mocha 和 supertest 的组合似乎是最好的解决方案。在this article 中有一个关于如何配置所有内容的完整示例和一个完整的测试示例,因此请查看它以更好地了解如何操作。此外,mocha、chai 和 supertest 上的文档也很有用。
【讨论】: