testing - Какая лучшая структура тестирования для использования с Node.js?




frameworks (4)

Если вы хотите создать истинную структуру BDD, то, возможно, подумайте о Yadda . Он объединяется с моккой, жасмином, узловым узлом, qunit, зомби и casperjs для поддержки файлов функций, например

   Scenario: provides the version of all services
      given service x is running
      and service y is running
      when I request the service versions
      then service x should be version 0.0.1
      and service y should be version 0.0.2

Я просмотрел довольно длинный список тестовых фреймворков по адресу https://github.com/ry/node/wiki/modules#testing . Каков опыт работы с этими структурами?

Очевидно, что возможность запуска в браузере будет большим бонусом, но меня в основном интересует Node.js. Что-то с сильно асинхронным наклоном было бы здорово.


Основываясь на комментариях вышеперечисленного, я попробовал vowsjs.org , и он решил множество проблем, которые у меня были с моим асинхронным тестированием. Его способность сочетать серийное и параллельное тестирование является удивительной.

Удостоверьтесь, что вы внимательно прочитали инструкцию по руководству, но как только вы ее повесите, она гибкая, мощная и дает хорошие, чистые результаты.

ОБНОВЛЕНИЕ: Я бы также рекомендовал людям проверять свои утверждения. Он позволяет использовать очень гибкие, очень читаемые утверждения и совместим с Expresso и Vows, а также с большинством других тестовых платформ.

(Я отправляю это как отдельный ответ на случай, если люди не заметят комментариев по поводу ответа Альфреда).

ОБНОВЛЕНИЕ 1/7/2015: для чего это стоит, я с тех пор перешел от клятв к Мокке, а от Вт к Чаю. Mocha теперь имеет гораздо лучшую поддержку для асинхронных тестов с использованием обещаний, а Chai позволяет использовать несколько гибких параметров assert, включая api для expect , для тех, кто не любит изменять прототип объекта.


Я использую NodeUnit и его способность работать с асинхронными функциями достаточно прост.

Есть хорошее пошаговое руководство, которое должно подготовить вас к работе с nodeunit в своем блоге .

[ Примечание: API изменился с тех пор, как blogpost - setUp(callback) и tearDown(callback) принимают как обратный вызов в качестве аргумента, который необходимо вызвать, когда ваша настройка / отрыв завершен. ]


Я начал использовать Jasmine для моего тестирования JavaScript, потому что он маленький и работает как в браузере, так и в узле. Он также обладает действительно надежным API отчетов и сопоставления, поэтому его легко интегрировать с другими инструментами в будущем. Наличие встроенной фальшивой структуры также полезно, так как это часто одна из первых вещей, которые я бы добавил, когда я использовал qunit для TDD в браузере.





node.js