Является ли Test:: Unit еще релевантным в рельсах?
Я изучаю Rails по старому пути. Прочитав Agile Web Development с Rails (3-е издание) в качестве отправной точки. Я сейчас в главе, которая учит тестированию. Мне также известно о других платформах BDD Testing, таких как RSPec. Поэтому мне было интересно, могут ли рамки, такие как RSpec, Cucumber, Shoulda заменить необходимость знать/использовать Test:: Unit? Являются ли они оба важными по своему усмотрению и используются для разных целей?
ОБНОВЛЕНИЕ: Поскольку я новичок в тестировании, я также хотел бы получить обратную связь о том, какие ресурсы полезны для того, чтобы мои ноги были мокрыми с разными рамками.
Спасибо!
Ответы
Ответ 1
Мир изменился! Отметьте и отпустите @prusswan
Я думаю, что Test:: Unit по-прежнему актуальна, хотя существует много шумихи вокруг BDD и других инструментов тестирования.
Если вы хотите, чтобы вы могли это сделать, вы могли бы обойти обучение Test:: Unit и начать с чего-то вроде RSpec и Shoulda сразу, но есть что сказать о следующих примерах в Agile Web Development Книга, чтобы узнать, откуда взялись идеи BDD.
Я все еще использую Test:: Unit для некоторых проектов, поскольку он поставляется с Rails и по-прежнему является очень отличной платформой для тестирования.
Короче говоря, я не думаю, что это устарело, но это не передний край. BDD - это изменение парадигмы тестирования, особенно если вы начинаете использовать Cucumber и Webrat, но это фантастика, когда вы входите в нее. В случае, если "Переход" легче всего сделать, так что я начну с Test:: Unit, а затем перейду в "Shoulda", а затем попробуем RSpec и Cucumber.
Вы тестируете или, по крайней мере, интересуетесь тестированием! Это лучшая часть. В конце концов, неважно, что вы используете, пока вы довольны им.
Удачи!
Ответ 2
Сам DHH является одним из самых активных пользователей Test:: Unit и Avoider RSpec/Cucumber для их относительной сложности.
Я уважаю парней за этим, и я все для экспериментов, но распространение rSpec и Cucumber меня огорчает.
RSpec оскорбляет меня эстетически, без заметной выгоды от его дополнительной сложности над тестом/единицей.
Огурец не имеет для меня никакого смысла, если у вас нет клиентов, читающих тесты. Зачем вам создавать тег-специфический парсер для английского?
Важно, конечно, что мы проводим тестирование людей, поэтому инструменты не должны иметь большого значения. Но добавленная сложность все еще меня расстраивает.
"something.should be_true" подводит итог эстетическому аргументу для меня довольно хорошо. Этот вызов причиняет боль моим глазам, а не "утверждать что-то" .
Если вам интересно, продолжайте читать твиттер с этих твитов.
Ответ 3
Просто подумал, что опубликую обновление с 2012 года:
Из три main и текущий (можно использовать Rails 3.2 с не более чем некоторыми незначительными модификациями) вводные книги на RoR, два из них используют Rspec (с максимально коротким упоминание для Test:: Unit), и один из них планирует еще один роар Rspec для следующий выпуск, поэтому ясно, кто будет победитель этой "битвы" на данный момент
И позвольте мне выборочно процитировать dhh:
Важно, конечно, что мы проводим тестирование людей, поэтому инструменты не должны иметь большого значения.
Повторите в 2014 году:
Minitest теперь переустановил Test:: Unit по умолчанию в текущих версиях Rails. Лично я считаю, что он заслуживает более пристального взгляда по сравнению с его предшественником по ряду причин -
- Его статус по умолчанию
- Лучшая поддержка capybara и selenium, большая часть из-за таких драгоценных камней, как this
- Относительно легкий
- В основном обратная совместимость с Test:: Unit
Ответ 4
Rspec - полностью отдельная среда тестирования. Shoulda - это усовершенствование встроенной структуры Rails, Test:: Unit. Если вы используете Shoulda, вы используете Test:: Unit, но с большим количеством возможностей и более простым и понятным синтаксисом.
Я пробовал Rspec и Shoulda и для меня, Shoulda выигрывает руки. Мне это нравится лучше. Но это может быть вопросом вкуса.
Обратите внимание, что вы можете использовать Cucumber с Shoulda.
Другие ресурсы? Я рекомендую драгоценные камни ZenTest и RedGreen. ZenTest предоставляет автотест, который позволяет автоматически запускать тесты каждый раз, когда вы меняете файл. Это большая помощь.
Что касается приспособлений и фабрик, если вам нужно настроить кучу взаимосвязанных объектов, в которых вы тестируете обе стороны или отношения родитель-потомок и/или проверяете отношения "многие ко многим", светильники работают намного лучше. На самом деле я даже не уверен, что вы можете сделать это с заводами. Так что не увольняйте светильники - они используют их.
Ответ 5
Есть много людей, которым по-прежнему нравится Test:: Unit, и в некоторой степени это личное предпочтение. Однако, в балансе, вы найдете гораздо больше активности на фронте RSpec. Действительно классный материал - все это делается с RSpec и Cucumber, поэтому, если у вас нет личного предпочтения, я бы, вероятно, пропустил Test:: Unit. Вы должны, однако, быть достаточно знакомы с ним, чтобы читать другие тесты, которые написаны с ним, но я бы не предвидел, что это когда-либо проблема.