Nowe wersje mokki:
Możesz teraz zwrócić obietnicę mokce, a mokka będzie czekać na jej zakończenie, zanim przejdziesz dalej. Na przykład następujący test przejdzie:
let a = 0;
before(() => {
return new Promise((resolve) => {
setTimeout(() => {
a = 1;
resolve();
}, 200);
});
});
it('a should be set to 1', () => {
assert(a === 1);
});
Dokumentację znajdziesz tutaj
Dla starszych wersji mokki:
Jeśli chcesz, aby asynchroniczne żądanie zostało zakończone, zanim wszystko inne się wydarzy, musisz użyć done
parametru w swoim przed żądaniu i wywołać go w wywołaniu zwrotnym.
Mocha będzie wtedy czekać, aż done
zostanie wezwana do rozpoczęcia przetwarzania kolejnych bloków.
before(function (done) {
db.collection('user').remove({}, function (res) { done(); });
})
it('test spec', function (done) {
});
after(function() {});
Należy jednak zachować ostrożność, ponieważ niezastosowanie bazy danych do testów jednostkowych może znacznie spowolnić wykonywanie, ponieważ żądania w bazie danych mogą być dość długie w porównaniu z prostym wykonaniem kodu.
Aby uzyskać więcej informacji, zobacz dokumentację Mocha .
before
opiekuna. Np.before(function () { return db.collection...}