я заметил, что мой тест на контроллер начал расти слишком большим, поэтому я переместил некоторые методы stubbing в отдельный модуль.автономный модуль автозагрузки во время тестирования в Rails
я положил его в тест/Библиотека/my_module.rb
module MyModule
def mymethod
end
end
так мой тестовый контроллер в тестовом/контроллеры/my_controller.rb теперь выглядит так:
class MyControllerTest < ActionController::TestCase
include MyModule
def test_something
end
end
я затем попытался сделать rails autoload path "test/lib" только во время тестов. для этого, я добавил следующие строки в конфиге/сред/test.rb
config.autoload_paths += ["#{config.root}/test/lib"]
config.eager_load_paths += ["#{config.root}/test/lib"]
, но когда я запускаю мои тесты с «RAILS_ENV = тест тест граблей расслоение ехес», он бросает:
rake aborted!
NameError: uninitialized constant MyControllerTest::MyModule
если я поставил те же две строки в config/application.rb, все работает хорошо. но я не хочу загружать этот модуль f.ex. в производстве.
так почему это происходит и как я могу это исправить? и что такое лучшая практика Rails для хранения кода, специфичного для тестирования?