Rspec против TestUnit
Я начинаю этап планирования создания набора тестов для моего приложения rails 3.0.8. Я пытаюсь решить, на какой платформе тестирования/драгоценных камнях использовать. Обычно я предпочитаю придерживаться соглашения Rails как можно больше. Однако это означает использование TestUnit. Существует множество конкурирующих тестовых фреймворков, которые были созданы в качестве альтернативы TestUnit. За последние годы TestUnit стал лучше, или это не очень хороший соперник?
Я также слышал много хорошего о rspec. Являются ли rspec и TestUnit закрытыми с точки зрения функциональности, или rspec удаляет TestUnit из воды?
Независимо от того, какую модель я выбираю, я бы предпочел, чтобы у нее была хорошая база поддержки (много пользователей и документация), простота использования/простота и прочное будущее.
Ответы
Ответ 1
Оба теста:: Unit и Rspec - очень приятные решения. Что касается меня, я предпочитаю использовать RSpec в проекте Rails, потому что у него есть много автоматических решений, таких как автотест, подсветка синтаксиса, команды быстрого доступа, такие как rake spec
и другие вещи, которые делают с помощью test easer. Но в моих простых рубиновых сценариях я использую Test:: Unit - он очень легкий и стабильный, когда вам не нужно сложное тестирование (интеграционное и другое)
Ответ 2
Ответ - это вопрос вкуса, используйте оба в одном проекте и найдите, что вы предпочитаете. (Я тестирую:: Unit, RSpec для меня много сахара).
Обновление 2014. Поскольку Ruby 2.x имеет встроенный MiniTest, я бы предложил проверить MiniTest:: Spec в конце концов, что является простым расширением BDD. Вы можете смешивать блоки "описать" и "он" с хорошими контекстами проверки структуры. Он также обеспечивает "must_be..", если вы хотите больше, чем assert
.
Ответ 3
Я предпочитаю использовать эти драгоценные камни для тестирования
- Rspec
- Faker (для создания случайных и правильных данных для базы данных)
- Изготовление (для простого создания экземпляров)
Чтобы начать с rspec, взгляните на эту презентацию. Он содержит все необходимые примеры:
http://kerryb.github.com/iprug-rspec-presentation
Также прочитайте эти статьи по rspec:
http://relishapp.com/rspec/rspec-rails
Ответ 4
Эта статья Ruby Inside, особенно если вы следуете ссылкам и читаете комментарии, дает достаточно подробное обсуждение относительных достоинств Test:: Unit и RSpec. Ключевым отличием является то, что:
- люди, у которых есть нетехнические клиенты, с большей вероятностью будут лучше смотреть на RSpec и Cucumber;
- другие чаще предпочитают более прямые системы, такие как Test:: Unit.
Также см. эту часть руководства Michael Hartl Rails для сравнения RSpec и Cucumber.
Ответ 5
Вы можете использовать rspec
с cucumber
и webrat
драгоценными камнями, которые отлично сочетаются, если у вас большой веб-сайт. Сначала это будет громоздко, но позже это будет огромной выгодой.
Вы можете посмотреть следующие эпизоды railscasts, чтобы узнать больше об этих драгоценных камнях:
155 Начиная с огурца
156 Webrat
157 RSpec Матчи и макросы
159 Подробнее о огурце
Есть также некоторые другие драгоценные камни, такие как capybara
, который является относительно новым и многообещающим, но, честно говоря, я его не пробовал.
Ответ 6
Если вы начинаете свое путешествие с тестирования Rails-приложения, я бы порекомендовал вам начать работу с TestUnit. Вы можете найти очень хороший курс о лучшем тестировании рельсов и лучших практиках на http://www.codeschool.com/courses/rails-testing-for-zombies
Если вы более опытны, когда дело доходит до тестирования, вы можете попробовать RSpec.