节点摩卡异步挂钩不起作用?

node mocha async hooks not working?

好的,我显然是 mocha 的新手。根据我阅读文档和谷歌搜索后的理解,这应该有效,但事实并非如此:

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 部分不会等待 'before' 完成并被调用。也许我读错了文档或者我遗漏了什么,不确定。

任何见解都会有所帮助。

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

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

我养成了在混合同步和异步测试时总是使用 done 的习惯。如果您忘记 it.

上的异步 done,Mocha 可以像没有测试失败一样完成