我刚刚开始使用Mocha,测试一个非常基本的Express 4.0 rest API。
describe('API CALL UNIT TESTING', function(){
var app = require('../../app');
before(function(){
app.listen(3000);
});
describe('GET', function(){
it('respond with json', function(done){
request(app)
.get('/api/compile')
.set('Accept', 'application/json')
.expect('Content-Type', 'application/json')
.expect(200, done)
.end(function(e, res){
//console.log(res)
done();
})
})
});
after(function() {
app.close();
});
});
运行测试时出现以下错误:
1次传球(48ms)1失败
1)API CALL UNIT TESTING“毕竟”钩子: TypeError:对象函数(req,res,next){ app.handle(req,res,next);没有方法'关闭'
任何人都可以告知造成“毕竟”钩子错误的原因吗?
答案 0 :(得分:5)
显然,app对象没有close()方法。你实际上并没有准确地告诉我们应用程序是什么 - 但是如果我正确地回忆了快速API,你实际上会调用listen()返回的对象上的close(),所以也许你可以试试:
var server;
before(function(){
server = app.listen(3000);
});
....
after(function() {
server.close();
});