Wie kann ich Stummel oder die request.subdomains Methode in Rails verspotten?
-
05-07-2019 - |
Frage
Ich versuche, einige Funktionstests in meiner Rails-Anwendung zu schreiben, und in den application_controller.rb Ich habe diese:
before_filter :current_account
def current_account
@current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end
Beim Ausführen von Tests, request.subdomains
nicht den gültigen Sub-Domains enthält suche ich nach und macht es unmöglich, alle Funktionstests ausgeführt werden.
Ist es möglich, die current_account
Methode oder verspotten die request.subdomains
Objekt Stummel?
Lösung
In Ihrem Funktionstest sollten Sie in der Lage sein zu tun (mit Mokka):
@request.expects(:subdomains).returns(['www'])
Andere Tipps
Für mich (und mit Rails 2.3.4), lautet die korrekte Aussage
@controller.request.expects(:subdomains).returns(['www'])
da kann es nicht direkt an @request zugreifen.
@controller.instance_variable_set(:@request, OpenStruct.new({:subdomains => 'www'}))
Sie können alles Zugriff in Ruby:)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow