Rspec vs. TestUnit - PullRequest
       27

Rspec vs. TestUnit

43 голосов
/ 17 июня 2011

Я начинаю этап планирования создания пакета тестирования для моего приложения rails 3.0.8. Я пытаюсь решить, какой тестовый фреймворк / гем использовать. Обычно я предпочитаю придерживаться конвенции Rails как можно больше. Однако это означает использование TestUnit. Существует множество конкурирующих тестовых сред, которые были выбраны в качестве альтернативы TestUnit. Стало ли лучше TestUnit с годами, или это не очень хороший соперник?

Я также слышал много хорошего о rspec. Rspec и TestUnit близки по функциональности или rspec выдувает TestUnit из воды?

Какой бы фреймворк я ни выбрал, я бы предпочел, чтобы у него была хорошая база поддержки (много пользователей и документации), простота использования / простота и долгое будущее.

Ответы [ 6 ]

37 голосов
/ 17 июня 2011

Оба: Test :: Unit и Rspec - очень хорошие решения. Что касается меня, я предпочитаю использовать RSpec в моем проекте Rails - потому что он имеет много автоматических решений, таких как автоматическое тестирование, выделение синтаксиса, команды быстрого вызова, такие как rake spec и другие вещи, которые делают с помощью test easer. Но в моих простых скриптах ruby ​​я использую Test :: Unit - он очень легкий и простой, когда вам не нужно комплексное тестирование (интеграционное и другое)

14 голосов
/ 17 июня 2011

Ответ - дело вкуса, используйте оба в одном проекте и найдите себе, что вы предпочитаете. (Я делаю Test :: Unit, RSpec имеет много сахара для меня).

Обновление 2014 : Поскольку в Ruby 2.x есть встроенный MiniTest, я бы посоветовал проверить MiniTest :: Spec, который в конечном итоге является простым расширением BDD. Вы можете смешивать блоки «description» и «it», чтобы хорошо структурировать контексты теста. Он также предоставляет сопоставления must_be .., если вы хотите более assert.

8 голосов
/ 17 июня 2011

Я предпочитаю и использую эти драгоценные камни для тестирования

  • Rspec
  • Faker (для создания случайных и правильных данных для базы данных)
  • Изготовление (для простого создания экземпляров))

Чтобы начать с rspec, взгляните на эту презентацию.Он содержит все необходимые примеры:

http://kerryb.github.com/iprug-rspec-presentation

Также прочитайте эти статьи на rspec:

http://relishapp.com/rspec/rspec-rails

6 голосов
/ 06 июня 2012

Эта статья Ruby Inside , особенно если вы переходите по ссылкам и читаете комментарии, содержит довольно подробное обсуждение относительных достоинств Test :: Unit и RSpec.Ключевым отличием, по-видимому, является то, что:

  • людей с нетехническими клиентами с большей вероятностью будут смотреть RSpec и Cucumber более благоприятно;
  • другие с большей вероятностью предпочтут более прямые системы, такие как Test :: Unit.

Также см. эту часть руководства Rails Майкла Хартла для сравнения RSpec и Cucumber.

4 голосов
/ 17 июня 2011

Вы можете использовать rspec с cucumber и webrat драгоценными камнями, что делает отличную комбинацию, если у вас большой сайт. Сначала это будет громоздко, но позже это будет огромным преимуществом.

Вы можете посмотреть следующие эпизоды Railscasts, чтобы получить больше информации об этих драгоценных камнях:
155 Начиная с огурца
156 Вебрат
157 RSpec Matchers & Macros
159 Подробнее о огурце

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

2 голосов
/ 16 апреля 2012

Если вы начинаете свой путь с тестирования приложения Rails, я бы порекомендовал вам начать делать это с TestUnit.Вы можете найти очень хороший курс о лучшем приложении для тестирования rails и лучших практиках на http://www.codeschool.com/courses/rails-testing-for-zombies Если у вас больше опыта в тестировании, вы можете попробовать RSpec.

...