mocha before()中的asynchronous函数在it()spec之前完成了吗?
before()
有一个callback函数,用于清理数据库。 before()
所有内容都保证在it()
开始之前完成?
before(function(){ db.collection('user').remove({}, function(res){}); // is it guaranteed to finish before it()? }); it('test spec', function(done){ // do the test }); after(function(){ });
如果希望在发生其他事情之前完成asynchronous请求,则需要在请求之前使用done
参数,并在callback中调用它。
摩卡将等待,直到done
被调用来开始处理下面的块。
before(function (done) { db.collection('user').remove({}, function (res) { done(); }); // It is now guaranteed to finish before 'it' starts. }) it('test spec', function (done) { // execute test }); after(function() {});
你应该小心,因为不为unit testing数据库存根可能会严重拖慢执行,因为与简单的代码执行相比,数据库中的请求可能相当长。
有关更多信息,请参阅Mocha文档 。