Подтвердить что ты не робот

Является ли Test:: Unit еще релевантным в рельсах?

Я изучаю Rails по старому пути. Прочитав Agile Web Development с Rails (3-е издание) в качестве отправной точки. Я сейчас в главе, которая учит тестированию. Мне также известно о других платформах BDD Testing, таких как RSPec. Поэтому мне было интересно, могут ли рамки, такие как RSpec, Cucumber, Shoulda заменить необходимость знать/использовать Test:: Unit? Являются ли они оба важными по своему усмотрению и используются для разных целей?

ОБНОВЛЕНИЕ: Поскольку я новичок в тестировании, я также хотел бы получить обратную связь о том, какие ресурсы полезны для того, чтобы мои ноги были мокрыми с разными рамками.

Спасибо!

4b9b3361

Ответ 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. Вы должны, однако, быть достаточно знакомы с ним, чтобы читать другие тесты, которые написаны с ним, но я бы не предвидел, что это когда-либо проблема.