Должен ли я перейти от обетов к мокко?
Я пытаюсь решить, стоит ли переходить с Vows на Mocha для большого приложения Node.
Я наслаждался почти всем опытом обетов - но есть что-то странное в прохождении спора. Мне всегда приходится чесать голову, чтобы вспомнить, как работают темы, и это мешает основам написания тестов. Это особенно проблематично для глубоко вложенных асинхронных тестов. Хотя я считаю, что объединение Vows с async.js может немного помочь.
Так что Мокко кажется более гибким в своей отчетности. Мне нравится свобода выбора стиля тестирования и, что важно, он также запускается в браузере, что будет очень полезно. Но я беспокоюсь, что это все еще не решает проблему читаемости для глубоко вложенных асинхронных тестов.
У кого-нибудь есть практический совет - может ли Мокко сделать глубоко вложенные тесты удобочитаемыми? Я что-то пропустил?
2 ответа
Мокко это туз. Он обеспечивает готовый обратный вызов, а не ждет, что обеспечивает жасмин. Я не могу говорить о миграции от обетов, но от жасмина это было прямо вперед. Внутри вашей тестовой функции mocha вы можете использовать async, если хотите (или Seq и т. Д., Если вы хотите быть унаследованным), хотя если вам требуются вложенные обратные вызовы, то это интеграционный тест, который может заставить вас задуматься о гранулярности ваших тестов.,
ОТ: 100% тестовое покрытие редко дает какую-либо ценность.
Глубоко вложенные тесты решаются с помощью управления потоком в вашем наборе модульных тестов.
Vows не позволяет это легко, потому что стиль экспорта требует создания библиотек управления потоком, которые поддерживают это.
Либо напишите библиотеку управления потоком для обетов, либо переключитесь на mocha и повторно используйте существующую библиотеку управления потоком.