Ответ 1
Если вы хотите, чтобы ваш асинхронный запрос был завершен до того, как все остальное произойдет, вам нужно использовать параметр done
в вашем запросе перед запросом и вызвать его в обратном вызове.
Mocha будет ждать до вызова done
, чтобы начать обработку следующих блоков.
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() {});
Однако вы должны быть осторожны, так как не завершение базы данных для модульного тестирования может сильно замедлить выполнение, так как запросы в базе данных могут быть довольно длинными по сравнению с простым выполнением кода.
Для получения дополнительной информации см. документацию Mocha.