Mocha js Calling After()太快了吗?

时间:2015-07-07 23:50:48

标签: javascript node.js unit-testing mocha

Mocha单元测试的新手,我有一些运行良好的Mocha示例,但是我已经尝试了几个小时来运行这个,无论我做什么,之后()被称为早于我感觉的方式这应该。这是一个例子:

var dummyData = require('./dummyData.js')

describe('mochaTest', function() {

    after(function(done) {
        dummyData.cleanDb(function(){
            done();
        })
    });

    it('should hit the db to get dummy data and send', function(done) {

        dummyData.createDummyData(function(data1, data2, Lookup) {
            Lookup.lookup({
                data1: data1,
                data2: data2
            }, function(err, result) {
                done();
            });
        });
    });
})

然后在dummyData.js中:

exports.createDummyData = function(cb){
   doSomeStuff(function (err, patient) {
     // Connect to db, get some data to pass.
        var Lookup = require(./Lookup.js);
        cb(data1, data2, Lookup);

   })
}

exports.cleanDb = function(cb) {
   // Clear db connections.
   cb();
}

问题是,在运行测试之后,调用after()函数并且Lookup函数无法命中db,因为数据库连接已被清除。为什么在这么早被调用之后,在it语句调用done()之前不应该调用它?

0 个答案:

没有答案