我正在测试HTTP服务器。我希望我可以将done
传递给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();
});
});
这不起作用,mocha从不运行测试。
以下代码确实有效,但每次发出新的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();
}
});
});
如何根据相同的响应运行测试?
答案 0 :(得分:2)
如果您测试完全相同的请求 - 那么为什么assert
分布在多个测试中?恕我直言有两种选择:
目前你正在做的方式你可能在测试之间存在相互依赖性,这就是 - 恕我直言 - 非常糟糕的测试风格。
只需2美分。