Вопрос

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

ОБНОВЛЯТЬ:Поскольку я новичок в тестировании, мне также хотелось бы получить отзывы о том, какие ресурсы полезны, чтобы освоить различные фреймворки.

Спасибо!

Это было полезно?

Решение

Мир изменился!Проверьте и проголосуйте за @prusswan

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

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

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

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

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

Удачи!

Другие советы

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

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

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

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

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

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

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

Просто решил опубликовать обновление за 2012 год:

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

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

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

Повторное посещение в 2014 году:

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

  1. Его статус по умолчанию
  2. Улучшена поддержка капибары и селена, во многом благодаря таким драгоценным камням, как этот
  3. Относительно легкий
  4. В основном обратно совместим с Test::Unit.

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

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

Обратите внимание, что вы можете использовать Cucumber с Musta.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top