¿Cómo puedo aplastar o simular el método request.subdomains en Rails?
-
05-07-2019 - |
Pregunta
Estoy tratando de escribir algunas pruebas funcionales en mi aplicación Rails, y en el application_controller.rb tengo esto:
before_filter :current_account
def current_account
@current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end
Al ejecutar pruebas, request.subdomains
no contiene los subdominios válidos que estoy buscando y hace que sea imposible ejecutar cualquier prueba funcional.
¿Es posible aplazar el método current_account
o simular el objeto request.subdomains
?
Solución
En tu prueba funcional deberías poder hacerlo (usando mocha):
@request.expects(:subdomains).returns(['www'])
Otros consejos
Para mí (y con Rails 2.3.4), la declaración correcta es
@controller.request.expects(:subdomains).returns(['www'])
ya que no puedo acceder a @request directamente.
@controller.instance_variable_set(:@request, OpenStruct.new({:subdomains => 'www'}))
puedes acceder a cualquier cosa en ruby ??:)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow