В чем разница между ч / б minitest-rails и minitest-spec-rails?
Изучение использования Minitest для существующего Rails 3.2. Я пытаюсь понять разницу между minitest-rails и minitest-spec-rails.
2 ответа
Основное различие между minitest-spec-rails и minitest-rails заключается в объеме проблем, которые они решают.
MiniTest-Spec-рельсы
minitest-spec-rails переопределяет инфраструктуру тестирования, которую Rails предоставляет по умолчанию, и добавляет возможность использовать Minitest Spec DSL и сопоставители в ваших тестах. Это означает, что вам не нужно вносить какие-либо изменения в существующие тесты, чтобы начать использовать Spec DSL. Это также означает, что Spec DSL доступен в каждом тесте.
MiniTest рельсы
minitest-rails добавляет возможность использовать Spec DSL, но также меняет подход к написанию тестов. Он предоставляет новые генераторы для ваших тестов и позволяет выбирать из утверждений в стиле TDD или ожиданий в стиле BDD. Он размещает тестовые файлы в более разумных местах.
Это также позволяет вашим существующим тестам жить бок о бок с вашими новыми тестами Minitest. У вас есть возможность переопределить тестовую инфраструктуру по умолчанию, аналогичную minitest-spec-rails, но вы также можете оставить их нетронутыми.
Раскрытие: я автор минитест-рельсов
С помощью minitest-spec-rails у нас есть рабочее решение, заменив MiniTest::Spec в качестве суперкласса для ActiveSupport::TestCase. Это простое решение и не требует от вас повторного создания нового тестового примера в вашем test_helper.rb или использования генераторов, предоставляемых такими гемами, как minitest-rails.
Минимальные изменения для тестирования в Rails. Ваши тестовые классы будут наследоваться от MiniTest::Rails::ActiveSupport::TestCase и ActiveSupport::TestCase. Вы можете использовать MiniTest::Spec DSL. Вы можете создавать тестовые файлы со стандартной моделью, контроллером, ресурсом и другими генераторами.
rails generate model User
или же
И вы можете указать генерацию тестов с помощью MiniTest::Spec DSL на любом из генераторов, указав опцию --spec
rails generate model User --spec