В чем разница между ч / б 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
Другие вопросы по тегам