【问题标题】:node mocha async hooks not working?节点摩卡异步挂钩不起作用?
【发布时间】:2016-05-28 02:35:21
【问题描述】:

好吧,我显然是摩卡的新手。根据我阅读文档和谷歌搜索后的理解,这应该可行,但不是:

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 部分不会等待“之前”完成并被调用。也许我读错了文档或者我遗漏了一些东西,不确定。

任何见解都会有所帮助。

【问题讨论】:

    标签: node.js unit-testing mocha.js chai


    【解决方案1】:

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

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

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

    【讨论】:

    • 天哪,我不敢相信我错过了。呃。浪费了这么多时间。需要更仔细地查看示例代码:/...非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2018-05-24
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多