好的,如果我注释掉“之前”和“之后”方法,我的摩卡测试将会通过。我确信我的两个错误都是彼此相关的。
'after'方法失败,说明app.close不是一个函数。 'before'方法失败,说它无法在我的第7行(清除服务器缓存)找到'app'。
我完全没有选择或想法。我希望能够按照我的命令启动和停止我的服务器。这是我第一次尝试将任何类型的'before / after'方法包含在我的mocha测试中。下面的工作代码,但我的失败部分已注释掉了。有什么建议??
var request = require('supertest');
var app = require('../../server');
describe('server', function() {
before(function () {
//var app = require('../../server')();
//delete require.cache[require.resolve('app')];
});
after(function () {
//app.close();
});
describe('basic comms', function() {
it('responds to root route', function testSlash(done) {
request(app)
.get('/')
.expect('Content-type', /json/)
//.expect(res.message).to.equal('Hello World!')
.expect(200, done);
});
it('404 everything else', function testPath(done) {
//console.log('testing 404 response');
request(app)
.get('/foo/bar')
.expect(404, done);
});
});
});
答案 0 :(得分:0)
在before
中,您需要的方式与第2行不同。为什么不使用已经要求的应用?
示例:
before(function () {
// here you can use app from line 2
});
关于app.close
,您在哪里找到此功能?
检查Express文档: http://expressjs.com/en/4x/api.html#app
要关闭快速服务器,您可以使用以下方法: