Rails 3, слишком много способов тестирования?

Если бы вы только начинали работать с рельсами, каким путем вы бы посоветовали новым пользователям перейти на Тестирование.

Все, что я читал о Rails 3, говорит мне, что я должен использовать Rspec 2. Но Rspec поставляется с целым рядом других вещей, которые мне нужно изучить, например

gem 'capybara'
gem 'database_cleaner'
gem 'cucumber-rails'
gem 'cucumber'
gem 'spork'
gem 'launchy'

А потом один из моих друзей только что сказал мне, что я должен просто придерживаться среды тестирования, которая поставляется с рельсами, и, возможно, просто интегрировать «следует» в процесс тестирования, потому что у нее приятный синтаксис.

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

Я новичок в рельсах.
Не знаю, с чего начать.
Я чувствую себя подавленным.
Это нормально?


person alenm    schedule 30.01.2011    source источник


Ответы (3)


Поскольку вы начинаете с рельсов, я бы порекомендовал использовать что-то, что «просто работает», чтобы выработать привычку тестировать свой код и понимать, как работать с вашим фреймворком. Не тратьте время на сравнение решений, выберите одно из них и придерживайтесь его в этом проекте.

При этом я действительно думаю, что это зависит от вашего опыта разработки программного обеспечения:

  • если вы никогда не использовали модульные тесты для своего кода, изучите Test::Unit и подумайте о внедрении TDD. Обратите внимание, что сначала TDD потребует от вас большого количества времени, но это окупится, когда вы к нему привыкнете.
  • если у вас есть значительный опыт тестирования кода и вы просто не понимаете, как начать работу с рельсами, я рекомендую пройти через http://railstutorial.org/book. Это (бесплатная) книга по Ruby on Rails, которая использует RSpec, Spork и служит отличным введением

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

Я также рекомендую вам хорошо изучить RSpec, прежде чем погрузиться в Cucumber.

person tomeduarte    schedule 30.01.2011
comment
Спасибо за отзыв, пойду по этому пути - person alenm; 04.02.2011

Похоже, у вас есть опция перегрузки. Что характерно для большинства людей в самых разных ситуациях, даже вне программирования. Абсолютно проще всего вам будет использовать то, что Rails устанавливает по умолчанию, которое называется Test::Unit.

Их официальное руководство представляет это здесь: http://guides.rubyonrails.org/testing.html

Как только вы освоитесь с тестированием в простом стиле Test::Unit, я предлагаю вам изучить некоторые из дополнений, упомянутых вашим другом, такие как shoulda (https://github.com/thoughtbot/shoulda) и factory_girl (https:// github.com/thoughtbot/factory_girl)

Удачи!

person ctcherry    schedule 30.01.2011

Но Rspec поставляется с целым рядом других вещей, которые мне нужно изучить, например...

На самом деле вам не нужно изучать какие-либо другие драгоценные камни, чтобы начать работу с RSpec. Просто выберите gem 'rspec-rails и запустите rails generate rspec:install, чтобы настроить проект.

Хороший способ изучить RSpec — посмотреть на код, сгенерированный rails generate scaffold. Это создает файлы спецификаций для контроллеров, представлений и маршрутов, которые имеют дело со стандартными действиями RESTful.

Изучая RSpec, вы можете добавлять другие жемчужины по мере того, как вы обнаружите в них необходимость. Autotest важно ИМХО. Webrat добавляет полезные сопоставители для спецификаций представления. Factory_girl добавляет поддержку фабрик.

Spork это здорово, но на самом деле не нужно, пока у вас не будет достаточно спецификаций, чтобы производительность была проблемой.

Я чувствую себя подавленным. Это нормально?

Меньше этого, больше это :)

person zetetic    schedule 30.01.2011
comment
Я смотрю на эшафот rspec. Это несколько помогает. Хороший видеоотзыв :) - person alenm; 04.02.2011