Должен ли я перейти от обетов к мокко? - PullRequest
10 голосов
/ 13 февраля 2012

Я пытаюсь решить, стоит ли переходить с Vows на Mocha для большого приложения Node.

Мне понравился почти весь опыт Vows, но в передаче аргумента есть что-то странное.Мне всегда приходится чесать голову, чтобы вспомнить, как работают темы, и это мешает основам написания тестов.Это особенно проблематично для глубоко вложенных асинхронных тестов.Хотя я нахожу, что объединение Vows с async.js может немного помочь.

Так что Mocha кажется более гибким в своих отчетах.Мне нравится свобода выбора стиля тестирования и, что важно, он также запускается в браузере, что будет очень полезно.Но я беспокоюсь, что это все еще не решает проблему читаемости для глубоко вложенных асинхронных тестов.

У кого-нибудь есть практический совет - может ли Mocha сделать глубоко вложенные тесты удобочитаемыми?Я что-то упустил?

Ответы [ 2 ]

9 голосов
/ 13 февраля 2012

Мокко это туз.Это обеспечивает готовый обратный вызов, а не ждет, что обеспечивает жасмин.Я не могу говорить о миграции от обетов, но от жасмина это было прямо вперед.Внутри вашей тестовой функции mocha вы можете использовать async, если хотите (или Seq и т. Д., Если вы хотите быть унаследованным), хотя если вам требуются вложенные обратные вызовы, то это интеграционный тест, который может заставить вас задуматься о гранулярности ваших тестов..

ОТ: 100% тестовое покрытие редко дает какое-либо значение.

3 голосов
/ 13 февраля 2012

Глубоко вложенные тесты решаются с помощью управления потоком в вашем наборе модульных тестов.

Vows не позволяет это легко, потому что стиль экспорта требует создания библиотек управления потоком, которые поддерживают это.

Либонаписать библиотеку управления потоком для vows или переключиться на mocha и повторно использовать существующую библиотеку управления потоком.

...