2010-08-30 4 views
14

Я новичок в модульной тестовой сцене; Я использую модульные тесты уже около 2 месяцев. Когда я тестирую модуль в Ruby, я в настоящее время следую стилю TDD и использую Test :: Unit :: TestCase. Я также прочитал о RSpec и о том, как это следует методологии BDD. Я также прочитал о Shoulda, который находится между двумя структурами. Мой вопрос в том, в какой структуре я должен посвятить свое время RSpec или Shoulda, или я должен придерживаться Test :: Unit :: TestCase? Любые мнения по этому вопросу оцениваются.RSpec против Shoulda?

ответ

14

RSpec имеет много приятных функций, больше, чем просто синтаксис. Я бы порекомендовал его по поводу Shoulda.

Даже Thoughtbot, авторы Shoulda, используют RSpec сейчас. Теперь Shoulda работает как плагин RSpec и предоставляет ряд полезных сокетов.

15

Проверка комплиментов Shoulda :: Unit и RSpec, поэтому я не думаю, что это случай выбора Shoulda over RSpec или наоборот. Я использую Shoulda для нескольких проектов, некоторые тестируются с помощью Test :: Unit, другие с RSpec, и он отлично работает вместе с обеими структурами.

Я бы рекомендовал попробовать Shoulda в существующем проекте Test :: Unit. Это может сэкономить вам много мазков и сохранить ваши тестовые классы немного более аккуратными и более последовательными.

Как правильно говорит Эндрю Вит, команда «Вста» выступает за способ RSpec делать все больше и больше (см. http://robots.thoughtbot.com/post/701863189/shoulda-rails3-and-beyond). Стоит попробовать RSpec и посмотреть, как вам это нравится. Это не для всех, но я предпочитаю Test: Unit для его синтаксиса, выразительности, вложенных контекстов, пользовательских совпадений и просто крутой прохлады! ;-)

1

Нет ни одного из них. Используйте различные инструменты тестирования, где они подходят лучше всего.

Shoulda - отличный инструмент для тестирования одной линии. Это поможет вам сохранить ваши тесты чистыми и лаконичными. Если вам нравится этот стиль, я также рекомендовал бы камень Zebra. Это хороший инструмент для написания тестов с одним слоем.

Смежные вопросы