为所有测试用例添加默认的before()函数(Mocha)

时间:2014-06-18 07:19:28

标签: node.js tdd mocha

我正在使用TDD(Mocha)为我的node.js服务器编写函数。为了连接数据库我正在做

before(function(done){
  db.connect(function(){
      done();
   });
});

我正在使用make test运行测试用例,并使用mocha *.js配置了我的makefile以运行该特定文件夹中的所有js文件

但对于每个js文件,我必须与数据库建立单独的连接,否则我的测试用例会失败,因为它们与其他测试文件不共享。

所以问题是,是否有beforeAll()之类的东西只是简单地连接一次到数据库然后运行所有的测试用例?任何帮助/建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以将数据库连接设置为每个Mocha测试模块导入的模块。

var db = require('./db');

一个好的数据库接口会在你完成连接之前对你发送给它的命令进行排队。你可以在这里利用它。

before来电中,只需执行相当于no op的操作即可。在SQL中,它会像SELECT 1的原始查询一样简单。你不关心结果。返回查询只表示数据库已准备就绪。

由于每个Mocha模块使用相同的数据库模块,因此它只能连接一次。

在每个测试模块中使用它:

before(function(done) {
  db.no_op(done);
});

然后将db.no_op定义为执行no op并执行回调函数的函数。