ruby - validations - rspec что это



RuntimeError: обнаружена циклическая зависимость при автозагрузке постоянной (1)


Я реорганизовал свои контроллеры, представив модели запросов и ответов для выполнения некоторой логики, которая висела вокруг контроллеров, следующих за этой презентацией . Я завернул все модели ответов и запросов с модулем « Ответы и запросы» соответственно. Приложения работают отлично, но когда я запускаю тесты, я получаю ошибку ниже.

Failure/Error: Unable to find matching line from backtrace
RuntimeError:
Circular dependency detected while autoloading constant Responses::FolderContentResponse

Моя структура каталогов выглядит следующим образом:
- приложение /
- модели /
- ответы /

Примечание. Я видел вопросы, связанные с этой проблемой, но их проблемы не были похожи на мои. В моем случае это происходит случайным образом, и только при выполнении тестов (RAILS TEST ENV) приложение работает отлично.

module Responses
  class ContentResponse
   include ActiveAttr::Model
   #some attributes
   #some methods
  end
end

module Responses
 class FolderContentResponse < ContentResponse
 end
end

Класс ответа FolderContent наследуется от ContentResponse, который имеет более общие методы, которые используют другие ответы на контент FolderContent.


Это очень похоже на проблему, недавно обнаруженную Ксавьером Норией. В двух словах, capybara загружает ваше приложение в многопоточном режиме для теста, даже если настройка для загрузки всего кода приложения не активирована (требуется, потому что require и friends не являются потокобезопасными)

Он исправлен для рельсов 4.2, в более ранних версиях

config.allow_concurrency = false

в test.rb должен сделать трюк





rspec-rails