ruby - matchers - RuntimeError: dependencia circular detectada mientras se carga automáticamente la constante
rspec ruby (1)
Refactore mis controladores introduciendo modelos de solicitud y respuesta para hacer algo de la lógica que estaba rondando a los controladores después de esta presentación . Envolví todas las respuestas y solicité modelos con un módulo Respuestas y Solicitudes, respectivamente. Las aplicaciones se ejecutan perfectamente, pero cuando ejecuto las pruebas, aparece el siguiente error.
Failure/Error: Unable to find matching line from backtrace
RuntimeError:
Circular dependency detected while autoloading constant Responses::FolderContentResponse
Mi estructura de directorio es la siguiente:
- aplicación /
- modelos /
- respuestas /
Nota: He visto las preguntas relacionadas con este tema, pero sus problemas no parecían similares a los míos. En mi caso, esto ocurre al azar, y solo cuando se ejecutan las pruebas (RAILS TEST ENV), la aplicación funciona perfectamente.
module Responses
class ContentResponse
include ActiveAttr::Model
#some attributes
#some methods
end
end
module Responses
class FolderContentResponse < ContentResponse
end
end
La clase de respuesta FolderContent hereda de ContentResponse que tiene más métodos genéricos que otras respuestas de contenido de FolderContent.
Esto se parece mucho a un problema encontrado recientemente por Xavier Noria. En pocas palabras, el carpincho inicia su aplicación en modo multiproceso para la prueba, aunque la configuración para cargar todo el código de la aplicación por adelantado no está activada (se necesita porque require
y los amigos no son seguros para la ejecución de los hilos)
Se ha solucionado para los rieles 4.2, en versiones anteriores
config.allow_concurrency = false
en test.rb debería hacer el truco