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 ?

È stato utile?

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
scroll top