2017-04-14 10 views
0

Ich verwende MochaJS für Tests meiner NodeJS-Anwendung.Async-Funktionen mit Mocha testen

Ich habe eine someFunc() Funktion und diese Funktion ist wie folgt aus:

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

Und es wie folgt testen:

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

Aber ich bin immer noch diesen Fehler:

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

Ich verwende done() Funktion in einer Callback-Funktion. Ist es ein Problem?

+1

Was Sie dort haben, sollte in Ordnung sein. Sind Sie sicher, dass 'someFunc' den Rückruf aufruft? – cartant

+0

@cartant ja, das ist mein genaues Problem. Ich brauche einen Kaffee :) Danke. Kannst du es als Antwort senden, damit ich es annehmen kann? – Eray

Antwort

0

Hinweis Dies ist actaully @ Cartant's Antwort, aber er hat es nicht als Antwort gesendet, damit ich die Lösung erklären werde.

Ich konnte es nicht realisieren, aber in einem der Fälle in someFunc, es ruft nicht den Rückruf. Wenn Sie das gleiche Problem haben, stellen Sie sicher, dass Ihre Funktion wirklich Callback aufruft.

Verwandte Themen