Frage

Ich hatte wahnsinnig viel Zeit damit, herauszufinden, wie ich mich mithilfe von Antwortobjekten von Rails an- und abmelden kann.Die Standardblogs waren in Ordnung, aber ich habe es schließlich diagnostiziert und wollte es hier aufzeichnen.

app.get '/'
assert_response :success
app.get '/auth_only_url'
assert_response 302
user = User.find(:user_to_login)
app.post '/signin_url', 
              :user_email => user.email, 
              :user_password => '<password in clear>'
assert_response 302
app.follow_redirect!
assert_response :success
app.get '/auth_only_url'
assert_response :success

Beachten Sie, dass das oben Genannte bedeutet, dass Sie nach einer fehlgeschlagenen Authentifizierungsanforderung und auch nach der Anmeldung umleiten.

Um sicherzustellen, dass Sie die Fixtures in die Datenbank Ihrer Testumgebung laden (was normalerweise während des Rake-Tests der Fall ist), stellen Sie sicher, dass Sie Folgendes ausführen:

 rake db:fixtures:load RAILS_ENV=test

(Von Patrick Richie) Die Standard -URL scheint 'www.example.com' zu sein, da dieser Standardhost in ActionController :: Integration :: Session festgelegt ist

ActionController::Integration::Session.new.host=> "www.example.com"

Es ist in actionpack/lib/action_controller/integration.rb#75 festgelegt

Um es im Integrationstest zu ändern, gehen Sie wie folgt vor:

session = open_session do |s|  s.host = 'my-example-host.com' end
War es hilfreich?

Lösung

„www.example.com“ ist der Standardhost, wie in ActionController::Integration::Session festgelegt

>> ActionController::Integration::Session.new.host
=> "www.example.com"

Es ist in actionpack/lib/action_controller/integration.rb#75 festgelegt

Sie sollten es in Ihrem Integrationstest ändern können, indem Sie Folgendes tun:

session = open_session do |s|
  s.host = 'my-example-host.com'
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top