为所有testing用例(Mocha)添加一个默认的before()函数,
我正在使用TDD(Mocha)为我的node.js服务器编写函数。 为了连接到我正在做的数据库
before(function(done){ db.connect(function(){ done(); }); });
我使用make test
运行make test
,并configuration了我的makefile以使用mocha *.js
运行该特定文件夹中的所有js文件
但是对于每个js
文件,我都必须独立连接到数据库,否则我的testing用例会失败,因为他们不能与其他testing文件共享通用范围。
所以问题是,是否有像beforeAll()
那样简单地连接一次到数据库,然后运行所有的testing用例? 任何帮助/build议表示赞赏。
您可以将您的db连接设置为每个Mochatesting模块导入的模块。
var db = require('./db');
一个好的数据库接口将在发送给它的命令完成连接之前排队。 你可以在这里使用你的优势。
在你打电话before
,只要做一些相当于no op
事情。 在SQL中,这会像SELECT 1
的原始查询那样简单。 你不关心结果。 查询的返回只是表示数据库已准备就绪。
由于每个摩卡模块使用相同的数据库模块,它只会连接一次。
在你的每个testing模块中使用它:
before(function(done) { db.no_op(done); });
然后将db.no_op
定义为执行no op
并执行callback函数的函数。