Wie zu fälschen eine Sub-Domain-Lookup in Rails Tests aus?
-
06-07-2019 - |
Frage
Ich habe folgenden Filter definiert:
# application_controller.rb
class ApplicationController < ActionController::Base
before_filter :find_account
private
def find_account
@current_account = Account.find_by_subdomain!(request.subdomains.first)
end
end
und in meinem Test:
# users_controller_test.rb
class UsersControllerTest < ActionController::TestCase
setup do
@request.host = "test.myapp.local"
end
# ...
end
Jetzt wird test
als Sub-Domain für ein Dummy-Konto definiert, die mich auf alle Anfragen Vorbelastung mit factory_girl
. Jedoch ist dies ein Null-Objekt Fehler zu werfen, sagen, dass @request null ist. Entfernen des Setup-Block führt alle meine Tests fehlschlagen, da find_account kein Konto finden können und deshalb wirft einen RecordNotFound
Fehler.
Was mache ich falsch?
Lösung
Versuchen Sie folgendes:
@request.env['HTTP_HOST'] = 'test.myapp.local'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow