Для нових версій мокко:
Тепер ви можете повернути обіцянку в мокку, і мокка буде чекати її завершення, перш ніж продовжувати. Наприклад, пройде наступний тест:
let a = 0;
before(() => {
return new Promise((resolve) => {
setTimeout(() => {
a = 1;
resolve();
}, 200);
});
});
it('a should be set to 1', () => {
assert(a === 1);
});
Ви можете знайти документацію тут
Для старих версій мокко:
Якщо ви хочете, щоб ваш асинхронний запит був завершений до того, як відбудеться все інше, вам потрібно використати done
параметр у своєму запиті перед тим, як викликати його у зворотному виклику.
Потім Мокка буде чекати, поки не done
буде викликано, щоб розпочати обробку наступних блоків.
before(function (done) {
db.collection('user').remove({}, function (res) { done(); });
})
it('test spec', function (done) {
});
after(function() {});
Однак будьте обережні, оскільки не заглушення бази даних для модульного тестування може сильно уповільнити виконання, оскільки запити в базі даних можуть бути досить довгими порівняно з простим виконанням коду.
Для отримання додаткової інформації див. Документацію Mocha .
before
обробника. Напр.before(function () { return db.collection...}