【发布时间】:2017-06-15 12:21:06
【问题描述】:
我正在 Nodejs 中使用 mocha 编写测试用例,并希望在运行测试之前重置数据库数据。我使用 Knex 作为查询生成器来执行查询。
我写了以下逻辑:
describe('Activities:', function() {
before(funtion(){
activityDBOperations.deleteAll()
.then(function(){
// all records are deleted
});
});
it('it should add a record into Activities table: multiple time activity', function(done) {
activityDBOperations.addRecord(requestParams)
.then(function(data) {
expect(data.length > 0).to.equal(true);
done();
});
});
});
问题是测试用例开始执行而不是等待 deleteAll 操作完成。我的理解是由于 deleteAll 正在返回承诺,由于承诺的异步性质,程序执行向前推进。
我如何确保只有在 deleteAll 完成后才运行测试用例?
【问题讨论】: