2017-04-14 154 views
0

我正在使用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

你在那里应该没问题。你确定'someFunc'正在调用回调吗? – cartant

+0

@cartant是的,这是我确切的问题。我需要一杯咖啡:)谢谢。你可以将它作为答案发送,以便我可以接受它吗? – Eray

回答

0

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

我无法实现它,但在someFunc的情况下,它不调用回调。所以,如果你有同样的问题,确保你的函数真的调用回调函数。