2017-04-14 163 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的情況下,它不調用回調。所以,如果你有同樣的問題,確保你的函數真的調用回調函數。