我正在使用mocha为nodejs + mongodb Web应用程序编写单元测试。有许多测试文件需要操作mongodb。
所以我想在所有测试运行之前打开一个连接,并在所有测试之后关闭它,但我不知道该怎么做。
目前,我创建了一个文件dbtest_global.js
,其中包含以下代码:
before(function(done) {
console.log('before all');
global.connection = openMongoDB();
done();
});
after(function(done) {
global.connection.close(done);
});
然后在其他测试中,我使用require('./dbtest_global')
来要求它。
但我发现在运行mocha
时,before
方法将被多次调用,这会使global.connection
多次更改。
我想知道有没有办法让before
和after
方法在运行mocha
时只调用一次?
答案 0 :(得分:0)
您是否尝试使用普通的全局条件变量,以确保如果已经设置了变量,则函数会立即返回?
答案 1 :(得分:0)
尝试使用mochaodb帮助mocha - https://github.com/arunoda/mocha-mongo
它为您创建数据库连接并在测试之前清理集合。