摩卡asynchronoustesting,重用相同的请求
我正在testing一个HTTP服务器。 我希望我可以通过describe()
,而不是仅仅it()
,如下所示:
var request = require('supertest'); describe('Item', function(done){ request(app).get('/').end(function(req, res){ it('should have one thing', function(){ // Assert on res.body }); it('should have another thing', function(){ // Assert on res.body }); it('should have more things', function(){ // Assert on res.body }); done(); }); });
这是行不通的,摩卡从不运行testing。
下面的代码可以工作,但是每次创build一个新的HTTP请求时,我都希望使用相同的代码。
describe('Item', function(){ it('should have one thing', function(done){ request(app).get('/').end(function(req, res){ // Assert on res.body done(); } }); it('should have another thing', function(done){ request(app).get('/').end(function(req, res){ // Assert on res.body done(); } }); it('should more things', function(done){ request(app).get('/').end(function(req, res){ // Assert on res.body done(); } }); });
我怎样才能对相同的响应运行testing?
如果你testing完全相同的请求 – 那么为什么assert
分布在多个testing? 恕我直言,有两个select:
- 要么他们真的属于一个人,然后把所有的东西都变成一个单一的testing,你的问题就没有了。
- 或者,他们不属于一个人,那么就不要一个一个地处理,而要单独处理,避免产生副作用。 无论如何,你的问题也将消失。
你现在这样做的方式,你可能会有你的testing之间的相互依赖关系,这是 – 恕我直言 – 非常糟糕的testing风格。
只是我2美分。
- 摩卡,CoffeeScript,ZombieJS,Timout?
- Webstorm:debugging在ES6中编写的摩卡testing
- 在mocha中为ts-node覆盖`tsconfig.json`
- Babel不与Mocha一起工作并启动Node服务器
- Node.js – 简单的Restify POST摩卡testing失败
- 模拟一个HEAD请求redirect(通过nock模块)
- unit testingNodeJS Promise里面的一个函数
- 如何使用express,sequelize,mocha和supertests进行回滚unit testing
- 如何在Sails中使用摩卡testing控制器?