Untuk versi baru moka:
Sekarang Anda dapat mengembalikan janji ke moka, dan moka akan menunggunya selesai sebelum melanjutkan. Misalnya, tes berikut akan lulus:
let a = 0;
before(() => {
return new Promise((resolve) => {
setTimeout(() => {
a = 1;
resolve();
}, 200);
});
});
it('a should be set to 1', () => {
assert(a === 1);
});
Anda dapat menemukan dokumentasinya di sini
Untuk versi mocha yang lebih lama:
Jika Anda ingin permintaan asinkron Anda diselesaikan sebelum hal lainnya terjadi, Anda perlu menggunakan done
parameter dalam permintaan sebelum Anda, dan memanggilnya di callback.
Mocha kemudian akan menunggu hingga done
dipanggil untuk mulai memproses blok berikut.
before(function (done) {
db.collection('user').remove({}, function (res) { done(); });
})
it('test spec', function (done) {
});
after(function() {});
Anda harus berhati-hati, karena tidak menghentikan database untuk pengujian unit dapat sangat memperlambat eksekusi, karena permintaan dalam database mungkin cukup lama dibandingkan dengan eksekusi kode sederhana.
Untuk informasi lebih lanjut, lihat dokumentasi Mocha .
before
pawang Anda . Misalnyabefore(function () { return db.collection...}