Я пишу тесты для моего проекта Node.js/Express/Mongoose с использованием Mocha и Should.js, и я тестирую свои функции, которые обращаются к моему MongoDB. Я хочу, чтобы эти тесты были полностью независимы от фактических записей в моей базе данных, поэтому я хочу создать запись, а затем загрузить ее и выполнить все мои тесты на ней, а затем удалить ее. У меня есть мои фактические функции (я пишу тесты после завершения всего проекта), так что функция create
не имеет обратного вызова; он просто просто отображает страницу, когда это делается. В моем сценарии тестов я вызываю свою функцию load_entry
после вызова create
, но иногда create
занимает больше времени, чем обычно, и поэтому load_entry
выдает сообщение об ошибке, когда он не может загрузить эту статью, поскольку она еще не создана. Есть ли способ убедиться, что асинхронная функция закончена без использования обратных вызовов?Дождитесь завершения асинхронной функции без добавления обратного вызова
Пожалуйста, дайте мне знать, если есть дополнительная информация, которую я могу предоставить. Я просмотрел весь Google и не смог найти ничего, что действительно отвечало на мой вопрос, поскольку большинство решений просто говорят «используйте обратный вызов!».
В целях тестирования ознакомьтесь с информацией о sinon.js (доступно на npm). Он позволяет отключать асинхронные вызовы, такие как ajax-вызовы и таймауты и т. Д. Хорошо работает с моккой. – slebetman