节点mocha异步挂钩不工作?

时间:2016-05-28 02:35:21

标签: node.js unit-testing mocha chai

好的,所以我显然对摩卡很新。根据我的理解,阅读文档和谷歌后,这应该工作,但它不是:

describe("Check before", function(){

    var beforeCalled = false;
    before(function(){
        setTimeout(function() {
            beforeCalled = true;
            done();
        }, 150);
    });

    it("should run after before called", function(){
        expect(beforeCalled).to.equal(true);
    })
})

it部分不等待'之前'完成并被调用。也许我读错了文档,或者我错过了一些东西,不确定。

任何见解都会有所帮助。

1 个答案:

答案 0 :(得分:1)

done回调必须在函数签名中才能使mocha等待。

before(function(done){
    setTimeout(function() {
        beforeCalled = true;
        done();
    }, 150);
});

我有养成在混合同步和异步测试时总是使用done的习惯。如果您在done上忘记了一个异步it,则Mocha可以完成,就像没有测试失败一样。