我找到了一种方法,但我的直觉告诉我应该有一些更惯用的方法。基本上我不喜欢的是我必须在测试套件中要求 express 应用程序,这让我想知道是否存在竞争条件。另外,我想知道如果我在这样的几个文件中运行多个测试套件会发生什么。
有人知道更清洁的解决方案吗?
我的简化应用程序如下:
应用程序.js
app = module.exports = express()
...
http.createServer(app).listen(app.get('port'), function(){
console.log('app listening');
});
测试.js
var request = require('superagent');
var assert = require('assert');
var app = require('../app');
var port = app.get('port');
var rootUrl = 'localhost:'+port;
describe('API tests', function(){
describe('/ (root url)', function(){
it('should return a 200 statuscode', function(done){
request.get(rootUrl).end(function(res){
assert.equal(200, res.status);
done();
});
});
...