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

Как spec/rails_helper.rb отличается от spec/spec_helper.rb? Нужно ли мне это?

Я делаю Rails Tutorial во второй раз. Когда я ввожу этот

rails generate integration_test static_pages

Я получаю spec/rails_helper.rb и spec/spec_helper.rb вместо spec/spec_helper.rb

Теперь, когда я запускаю свои тесты, они больше (более "подробные" ) и медленнее, чем когда я делал это в прошлый раз. Мне интересно, какая разница между этими двумя файлами, и если я сделал что-то не так. Кроме того, есть ли способ избавиться от файла rails_helper.rb, не запуская все?

4b9b3361

Ответ 1

rspec-rails 3 генерирует spec_helper.rb и rails_helper.rb. spec_helper.rb предназначен для спецификаций, которые не зависят от Rails (таких как спецификации для классов в каталоге lib). rails_helper.rb предназначен для спецификаций, которые зависят от Rails (в проекте Rails, большинство или все из них). rails_helper.rb требуется spec_helper.rb. Так что нет, не избавляйтесь от rails_helper.rb; требуйте его (а не spec_helper.rb) в своих спецификациях.

Если вы хотите, чтобы ваши не зависящие от Rails спецификации гарантировали, что они не являются Rails-зависимыми, и для запуска как можно быстрее, когда вы запускаете их самостоятельно, вам может потребоваться spec_helper.rb, а не rails_helper.rb в тех. Но это очень удобно для -r rails_helper в вашем .rspec вместо того, чтобы требовать одного помощника или другого в каждом spec файле, так что это наверняка будет популярным.

Если вы используете предварительный загрузчик spring, каждый класс нужно загрузить только один раз, а spring загружает классы с нетерпением, даже если вы используете только одну спецификацию, которая требует spec_helper, поэтому в некоторых файлах не так много значения, когда требуется только spec_helper.

Источник: https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files