我开发了一个带有自定义解析器的graphql node js app。任何人都可以向我指出一些文档,其中说明了如何正确地为我的服务编写单元测试?或者,如果某人之前已经做过,并且可以指出我正确的方向,这将是伟大的!
答案 0 :(得分:0)
为了测试服务的每个端点,您需要使用适当的有效负载对指定的URL执行GET
操作。有效负载应该是包含三个属性的对象
为了测试您的终端,您可以使用supertest
等模块来执行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
});
等请求。
query
通过这种方式,您可以通过使用具有适当属性的等效mutation
对象执行POST
个请求来测试您的服务所包含的每个postData
和fixup()
。要将所有这些测试包装在一起,您可以使用在Mocha
之类的Node.js下使用断言库的任何测试框架。
答案 1 :(得分:0)
我们在如何测试我们的GraphQL SailsJS应用程序时遇到了同样的问题。 chai
,mocha
和supertest
的组合似乎是最佳解决方案。在this article中有一个完整的示例,说明如何配置所有内容和完整的测试示例,因此请查看它以更好地了解如何执行此操作。此外,关于mocha,chai和supertest的文档也很有用。