如何为GraphQL编写单元测试?我正在使用apollo服务器、graphql-tester和graphql。
{ raw: '{"errors":[{"message":"Cannot read property \'definitions\' of undefined"}]}', data: undefined, errors: [ { message: 'Cannot read property \'definitions\' of undefined' } ], headers: { 'x-powered-by': 'Express', 'content-type': 'application/json', date: 'Wed, 18 Jan 2017 05:56:22 GMT', connection: 'close', 'transfer-encoding': 'chunked' }, status: 400, success: false } 1) Returns success 0 passing (35ms) 1 failing 1) Unittest1 Returns success: TypeError: Cannot read property 'success' of undefined at Assertion. (node_modules/chai/lib/chai/core/assertions.js:890:14) at Assertion.ctx.(anonymous function) (node_modules/chai/lib/chai/utils/addMethod.js:41:25) at Assertion.somethingMethod (node_modules/chai-things/lib/chai-things.js:97:25) at Assertion.ctx.(anonymous function) (node_modules/chai/lib/chai/utils/overwriteMethod.js:49:33) at Assertion.allMethod (node_modules/chai-things/lib/chai-things.js:165:25) at Assertion.ctx.(anonymous function) (node_modules/chai/lib/chai/utils/overwriteMethod.js:49:33) at node_modules/chai-as-promised/lib/chai-as-promised.js:305:22 at process._tickCallback (internal/process/next_tick.js:103:7)
const tester = require('graphql-tester').tester; const fromGlobalId = require('graphql-relay').fromGlobalId; const chai = require('chai'); chai.should(); chai.use(require('chai-things')); chai.use(require('chai-properties')); chai.use(require('chai-arrays')); chai.use(require('chai-as-promised')); describe('Sites', () => { let sitesTest = tester({ url: 'http://localhost:3000/graphql' }); describe('Unittest1', () => { const response = sitesTest('{viewer {id}}').then((data) => { console.log(data) }); it('Returns success', () => { return response.should.eventually.have.property('success').equal(true); }); }); });
以下是我让它工作的方法:
const gql = tester({
server: createExpressWrapper(server),
url: '/graphql',
authorization: `Bearer ${token}`,
contentType: 'application/json'
})
gql(JSON.stringify({ query: '{ users { id } }' })).then((data) => {
})
Apollo的graphql服务器希望内容类型设置为application/json
,有效负载为{query:“...”,变量:{}}
。
本文向大家介绍AngularJS 单元测试服务,包括了AngularJS 单元测试服务的使用技巧和注意事项,需要的朋友参考一下 示例 服务编号 考试 跑!
我已经开始考虑在我的项目中围绕一些业务逻辑添加一些单元测试。 我想测试的第一个方法是服务层中的一个方法,它返回给定节点的子节点列表。 该方法如下所示: 我想象这样的测试方法是提供一个假树结构,然后测试提供节点是否返回正确的子节点。 ssdsContext是一个对象上下文。 我已经看到可以为提取和接口如何模拟ObjectContext或ObjectQuery 我还读到,as Entity Frame
我将SonarQube集成到我们的构建系统中--我在构建代理上安装了sonar-runner-2.4,并为每个解决方案添加了sonar-runner.properties(在TFS上的解决方案文件夹中)。在运行构建时,我在构建代理上编译解决方案后执行sonar-runner。除了单元测试之外,一切似乎都可以工作: 在构建的日志中,我看到近200个测试运行并成功完成,在声纳运行器日志中,我看到以下内
在我的项目中,我在进行单元测试时遇到了问题。一个问题是,仅仅进行联调就可以更快地编写,并且还可以测试组件是否真正协同工作。单元测试新颖的“算法”之类的似乎要容易得多。单元测试服务类感觉是错误和无用的。 我使用mockito来模拟spring数据存储库(以及DB访问)。问题是,如果我告诉模拟存储库在方法调用getById时返回实体A,它显然会返回实体A,服务也会返回实体A。是的,该服务做了一些额外的
在unittest中,我可以在一个类中设置变量,然后这个类的方法可以选择它想要使用的任何变量... 所以在unittest中,很容易将一组测试放在一起,这些测试可以放在一个类下,然后为不同的方法使用许多不同的变量(varA和varB)。在pytest中,我在conftest.py中创建了一个fixture,而不是在unittest中创建了一个类,如下所示。。。 对于两个不同的函数,我在不同的文件中
单元测试 单元测试例子放到自己开发的模块下。 如果依赖了第三方服务端(例如Zookeeper),请手动加入 profile。参考 registry-zookeeper 模块代码。 如果依赖了其它模块要集成测试,请放到 test/test-intergrated 模块中。 如果还依赖了第三方服务端(例如Zookeeper),请放到 test-intergrated-3rd 模块中。 性能测试 关闭了