我有一个使用Supertest的使用MongoDB的快速API的摩卡测试。 MongoDB是跑步,但我目前有Supertest要求和使用Express API而不是单独启动它(我更喜欢这种方法):在API初始化之前持有Supertest
var request = require('supertest');
var chai = require('chai');
var api = require('../../server/api.js');
chai.should();
describe("/api/lists", function() {
it("should be loaded", function() {
api.should.exist;
});
it("should respond with status 200 ", function(done) {
request(api)
.get('/api/lists')
.expect(200, done);
});
});
当测试运行时,它失败:
TypeError: Cannot call method 'collection' of undefined
at app.get.listId (/my/path/api.js:63:5)
我怀疑supertest是在MongoDB连接建立之前在我的API上运行测试。在我的API完全初始化之前,什么才能让它延续下去?
我想如果我在启动express之后通过Grunt进行测试,它会很好,但是由于Supertest可以代表我开始表达,所以我希望能够以这种方式开始。