Ruby on Rails 2.3.8: возникли проблемы с тестированием. - PullRequest
1 голос
/ 10 сентября 2011

TL; DR: Я не знаю, как заставить RSpec :: Matchers работать в моих тестах test / unit /..._ test.rb. я должен перенести все эти тесты в папку spec?


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

Когда я читал о том, какую инфраструктуру тестирования использовать для моих модульных тестов, я нашел RSpec и подумал, что это довольно круто ... но, как оказалось, я фактически не использовал Rspec, пока не узнал о том, какие методы должны быть be_nil / be_which. Я думал, что это было довольно круто.

Я застрял с тестами на прилипание в папках test / (unit | functionals), потому что это имело смысл (я думал, что иметь модульные и функциональные тесты в папке spec) было действительно странно и нетрадиционно. что позволило мне сделать should "test name", а не it "should...", что, на мой взгляд, было более лаконичным и более интуитивным.

Но недавно я начал использовать огурец для тестирования представлений, и ... это привело к множеству конфликтующих проблем с драгоценными камнями. Было очень трудно заставить огурца работать с девушкой из Фабрики, с капибарой и т.п.

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

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

Кто-нибудь еще заставил RSpec :: Matchers работать в этом сценарии?

соответствующая часть GemFile:

group :test do
    gem "cucumber", "~>0.10.3"
    gem "cucumber-rails", "0.3.2"
    gem "launchy"
    gem "hpricot"
    gem "gherkin", "~>2.4.0"

    gem "capybara", "0.4.1.2"
    gem "rspec", "~> 1.3.2"
    gem "rack"
    gem "rspec-rails", "~> 1.3.3"

    gem "webrat", "0.7.0"
    gem "database_cleaner"

    gem "factory_girl", "2.1"
    gem "shoulda", :require => nil
    gem "shoulda-matchers", :git => "https://github.com/thoughtbot/shoulda-matchers"
    gem "awesome_print"
    gem "cobravsmongoose"
end

1 Ответ

0 голосов
/ 10 сентября 2011

Вот ссылка на: страница ожиданий rspec, рассказывающая об интеграции с Test :: Unit

Мой опыт тестирования с огурцом, rspec и test :: unit заставляет меня поверить, что это все о комфорте, пока вы получаете покрытие. Я люблю rspec гораздо больше, чем тест. Если вам не очень удобен тестовый модуль, обязательно попробуйте rspec. Я также знаю людей (и сам начинаю склоняться к этому), которые просто используют огурец и пропускают rspec все вместе (но это может привести к «религиозному» обсуждению).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...