Test :: Unit по-прежнему актуален в рельсах? - PullRequest
17 голосов
/ 04 апреля 2009

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

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

Спасибо!

Ответы [ 5 ]

16 голосов
/ 04 апреля 2009

Мир изменился! Проверьте вниз и upvote @ prusswan

Я думаю, что Test :: Unit по-прежнему актуален, даже несмотря на то, что вокруг BDD и других инструментов тестирования много шумихи.

При этом, если вы готовы, вы можете обойти изучение Test :: Unit и сразу начать с чего-то вроде RSpec и Shoulda, но есть кое-что, что нужно сказать, следуя примерам в Agile Web Development Закажите, откуда пришли идеи BDD.

Я все еще использую Test :: Unit для некоторых проектов, так как он поставляется с Rails и все еще является отличной средой тестирования.

Короче говоря, я не думаю, что это устарело, но это уже не самое передовое. BDD - это смена парадигмы тестирования, особенно если вы начинаете использовать Cucumber и Webrat, но это фантастика, когда вы в нее вступаете. Самым простым для перехода является переход к Ifa, поэтому я бы начал с Test :: Unit, затем перешел бы в Ifa, затем попробовал RSpec и Cucumber.

Вы тестируете или, по крайней мере, заинтересованы в тестировании! Это лучшая часть. В конце концов, не имеет значения, что вы используете, если вы довольны этим.

Удачи!

7 голосов
/ 02 апреля 2011

DHH сам является заядлым пользователем Test :: Unit и избегает RSpec / Cucumber за их относительную сложность.

Я уважаю парней, стоящих за этим, и я за эксперименты, но распространение rSpec и Cucumber меня огорчает.

RSpec меня оскорбляет эстетически, без заметной выгоды за его дополнительную сложность перед тестом / модулем.

Огурец не имеет смысла для меня, если у вас нет клиентов, читающих тесты. Зачем вам создавать тест-парсер для английского языка?

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

"Что-то. Должно быть_тру" довольно хорошо суммирует эстетический аргумент для меня. Этот призыв ранит мои глаза против того, чтобы "утверждать что-то".

Если вам интересно, продолжайте читать твиттер с этих твитов.

6 голосов
/ 25 июля 2012

Просто думал, что выложу обновление с 2012 года:

Из трех main и current (пригодных для Rails 3.2 с не более чем незначительными изменениями) вводных книг по RoR, две из них используя Rspec (с кратким упоминанием Test :: Unit), и один из них планирует даже moar Rspec для следующего издания , поэтому ясно, кто будет победитель этой «битвы» пока

И позвольте мне выборочно процитировать дхх:

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

Пересмотр в 2014 году:

Minitest теперь заменяет Test :: Unit по умолчанию в текущих версиях Rails. Лично я считаю, что по ряду причин он заслуживает более пристального взгляда по сравнению с предшественником -

  1. Его статус по умолчанию
  2. Лучшая поддержка капибары и селена, большая часть из-за таких драгоценных камней, как this
  3. Относительно легкий
  4. В основном обратно совместимы с Test :: Unit
4 голосов
/ 02 июля 2009

Rspec - это совершенно отдельная среда тестирования. Должно быть улучшением встроенной платформы Rails, Test :: Unit. Если вы используете Needa, вы используете Test :: Unit, но с большими возможностями и более простым, более читаемым синтаксисом.

Я пробовал Rspec и Ifa, и для меня Ifa выигрывает. Мне нравится это лучше. Но это может быть дело вкуса.

Обратите внимание, что вы можете использовать огурец с musta .

Другие ресурсы? Я рекомендую драгоценные камни ZenTest и RedGreen. ZenTest предоставляет автотест, который позволяет вам запускать тесты автоматически при каждом изменении файла. Это большая помощь.

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

1 голос
/ 14 апреля 2009

Есть много людей, которым все еще нравится Test :: Unit, и в какой-то степени это личное предпочтение. Однако, в целом, вы найдете гораздо больше активности на фронте RSpec. Все действительно классные вещи делаются с RSpec и Cucumber, поэтому, если у вас нет личных предпочтений, я бы, вероятно, пропустил Test :: Unit. Однако вы должны быть достаточно знакомы с ним, чтобы читать чужие тесты, написанные с ним, но я бы не предвидел, что это когда-либо станет проблемой.

...