Für neue Mokka-Versionen:
Sie können jetzt ein Versprechen an Mokka zurückgeben, und Mokka wartet, bis es abgeschlossen ist, bevor Sie fortfahren. Der folgende Test besteht beispielsweise:
let a = 0;
before(() => {
return new Promise((resolve) => {
setTimeout(() => {
a = 1;
resolve();
}, 200);
});
});
it('a should be set to 1', () => {
assert(a === 1);
});
Die Dokumentation finden Sie hier
Für ältere Mokka-Versionen:
Wenn Sie möchten, dass Ihre asynchrone Anforderung abgeschlossen wird, bevor alles andere passiert, müssen Sie den done
Parameter in Ihrer vorherigen Anforderung verwenden und ihn im Rückruf aufrufen.
Mocha wartet dann, bis done
aufgerufen wird, um mit der Verarbeitung der folgenden Blöcke zu beginnen.
before(function (done) {
db.collection('user').remove({}, function (res) { done(); }); // It is now guaranteed to finish before 'it' starts.
})
it('test spec', function (done) {
// execute test
});
after(function() {});
Sie sollten jedoch vorsichtig sein, da ein Nicht-Stubben der Datenbank für Unit-Tests die Ausführung stark verlangsamen kann, da Anforderungen in einer Datenbank im Vergleich zur einfachen Codeausführung ziemlich lang sein können.
Weitere Informationen finden Sie in der Mokka-Dokumentation .
before
Handler zurückgeben. ZBbefore(function () { return db.collection...}