我应该如何在Mocha单元测试中初始化Mongoose连接?

时间:2015-04-02 00:35:30

标签: node.js mongodb unit-testing mongoose mocha

我一直在寻找这个地方。有些人似乎做了

mongoose.connect('mongodb://localhost/test');

继续他们的describe来电。那么异步等待呢?

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
  // yay!
});

我应该如何在Mocha测试中使用此连接?我应该把所有测试都放在回调中吗?我应该在单元测试中包装等待连接代码吗?连接是否会在describeit s?

之间保持不变

1 个答案:

答案 0 :(得分:4)

Mongoose connect函数支持回调。

由于before的Mocha异步版本也接受回调(通常称为done),因此只需将其传递给connect函数,如:

describe("Your test", function () {

  before(function (done) {
    mongoose.connect('mongodb://localhost/test', done);
  });
  // here you can write your tests
});

这样,连接将在describe范围内保持有效before方法。

但是,如果您想在测试文件中对所有测试使用连接,请在所有describe之前调用它:

before(function (done) {
  mongoose.connect('mongodb://localhost/test', done);
});

describe("first suite", function () {
  // do your tests
});

describe("second suite", function () {
  // do your tests
});

// and so on