使用Mocha测试异步函数

时间:2017-04-14 02:19:35

标签: node.js asynchronous mocha

我正在使用MochaJS来测试我的NodeJS应用程序。

我有一个someFunc()函数,该函数就是这样:

function someFunc(cb) {
    // Do some async works...
    // When async works finish
    if(err) // if there is error
        cb(err);
    else
        cb();
}

并按照以下方式进行测试:

it('...', function(done) {
    className.someFunc(function(err) {
      if (err) done(err);
      else done();
    });
});

但我仍然收到这个错误:

Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

我在回调函数中使用done()函数。这是一个问题吗?

1 个答案:

答案 0 :(得分:0)

注意这是@ cartant的回答,但他没有将其作为答案发送,所以我将解释解决方案。

我无法意识到这一点,但在someFunc中的一个案例中,它没有调用回调。因此,如果您遇到同样的问题,请确保您的函数确实正在调用回调。