2008-09-04 10 views
6

私は、Railsからの応答オブジェクトを使ってログインしてログアウトする方法を理解していました。標準のブログは大丈夫だったが、ついにそれを診断したので、ここに記録したかった。コンソールからログインしているRailsをテストするにはどうすればよいですか?

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 

注、上記のあなたが失敗した認証要求の後にリダイレクトしていること、また、あなたがログイン後にリダイレクトすることを意味している。

はあなたが正常に発生する(テスト環境DBに備品をロードすることを確認するためにすくいテスト)中に、あなたは次のことを実行していることを確認します

rake db:fixtures:load RAILS_ENV=test 

( )パトリック・リッチーから、デフォルトのURLはActionControllerに設定され、このデフォルトのホストとして、「www.example.com」であると表示されます::インテグレーション::セッション

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

次の操作を行い、統合テストでそれを変更するには#75

integration.rb/actionpack/libに/ action_controllerに設定されている:

session = open_session do |s| s.host = 'my-example-host.com' end 

答えて

2

「www.exampleを。 comはActionController :: Integration :: Sessionに設定されているデフォルトのホストです

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

これはactionpack/lib/action_controller/iに設定されています#75

ntegration.rb次の操作を実行して、統合テストでそれを変更することができる必要があります:

session = open_session do |s| 
    s.host = 'my-example-host.com' 
end 
関連する問題