Come posso stub o deridere il metodo request.subdomains in Rails?
-
05-07-2019 - |
Domanda
Sto cercando di scrivere alcuni test funzionali nella mia app rails e in application_controller.rb ho questo:
before_filter :current_account
def current_account
@current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end
Quando si eseguono i test, request.subdomains
non contiene i sottodomini validi che sto cercando e rende impossibile eseguire test funzionali.
È possibile stub il metodo current_account
o deridere l'oggetto request.subdomains
?
Soluzione
Nel tuo test funzionale dovresti essere in grado di fare (usando la moka):
@request.expects(:subdomains).returns(['www'])
Altri suggerimenti
Per me (e con Rails 2.3.4), la frase corretta è
@controller.request.expects(:subdomains).returns(['www'])
poiché non riesco ad accedere direttamente a @request.
@controller.instance_variable_set(:@request, OpenStruct.new({:subdomains => 'www'}))
puoi accedere a qualsiasi cosa in ruby ??:)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow