Mocha异步测试超时的解决方法

时间:2016-10-17 14:28:39

标签: javascript testing promise mocha chai

我正在尝试使用mocha和chai编写单元测试,但是我遇到了一个问题,我遇到了超时错误,而不是抛出实际错误,我似乎无法找到解决方法。

我得到的错误:

  1) Unit Tests for Networks Array
 should check that networks array is not empty:
     Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.

在我的代码中,我认为与我正在测试的相反是正确的,所以我有一个预期的失败。

有没有一种固定此类事情的标准方法?

describe('Unit Tests for Networks Array\n', function () {

    it('should check that networks array is not empty', function (done) {
        git.getNetworks(function (networks) {
            expect(networks).to.be.empty();  // expected failure
            done();
        });
    });

1 个答案:

答案 0 :(得分:0)

Promise以这种方式工作,你可以拒绝或解决它。但是,如果您的承诺逻辑中存在错误,并且您没有抓住错误,因为它吞噬并且无声地死亡并且永远不会显示。

git.getNetworks.then(function() { 
/* do something with the result */
}).catch(function() {
 /* error :( */
})

确保覆盖拒绝回调(可选)和catch(始终),否则Promise静默抛出错误以及Mocha发送超时的原因