2

私はカピバラを初めて使用しますが、レール 2 からレール 3 に変換しているアプリを (キュウリで) テストするためにそれを使用しようとしています。以下:

visit login_path
fill_in 'Email', :with => 'test@example.com'
fill_in 'Password', :with => 'XXXXXXXXX'
click_button 'Log in'

このカスタム ステップで cucumber を実行すると、次のエラーが表示されます。


UserSessionsController AbstractController::ActionNotFoundのアクション「インデックス」が見つかりませんでした)

ログは次のように出力されます。

Started GET "/login" for 127.0.0.1 at Fri May 06 15:48:42 -0400 2011
Processing by UserSessionsController#new as HTML
Redirected to https://www.example.com/login
Completed 302 Found in 1ms

Started GET "/login" for 127.0.0.1 at Fri May 06 15:48:42 -0400 2011
Processing by UserSessionsController#new as HTML
Rendered user_sessions/new.html.erb within layouts/promo (15.8ms)
Completed 200 OK in 38ms (Views: 24.5ms | ActiveRecord: 2.9ms)

Started POST "/user_sessions" for 127.0.0.1 at Fri May 06 15:48:42 -0400 2011
Processing by UserSessionsController#create as HTML
Parameters: {"commit"=>"Log in", "user_session"=>{"password"=>"[FILTERED]", "email"=>"test@example.com"}, "utf8"=>"✓"}
Redirected to https://www.example.com/user_sessions
Completed 302 Found in 1ms

Started GET "/user_sessions" for 127.0.0.1 at Fri May 06 15:48:42 -0400 2011 
SQL (0.6ms)  ROLLBACK

ここに私の質問があります:
/login が GET されてから /login にリダイレクトされるのはなぜですか?
/user_sessions への POST もそれ自体にリダイレクトされるのはなぜですか (これによりエラーが発生します)???

開発中はすべて問題なく動作し、302 ステータス コードは表示されません。単純なことかもしれませんが、私にはわかりません。

編集: これを送信してから 5 分後、SSL_requirement プラグインがリダイレクトの原因であることに気付きました。「ssl_required」をコメントアウトすると、テストはパスします。誰かが答えを出さない限り、カピバラの設定方法を見つけるために、カピバラについてさらに調査する必要があります。

編集回答(8時間投稿できないため):答えが見つかりました。編集で述べたように、問題は SSL 要件によるリダイレクトです。問題の非常に優れた説明は、https ://github.com/jnicklas/capybara/issues/85 にあります。現在の解決策は、https ://gist.github.com/466411 にあるパッチです。

4

1 に答える 1

1

私は答えを見つけました。編集で述べたように、問題はSSL要件によるリダイレクトです。問題の非常に良い説明はここで見つけることができます:https ://github.com/jnicklas/capybara/issues/85 。現在の解決策は、 https://gist.github.com/466411で見つけることができる私のために働いたパッチです。

于 2011-05-10T14:55:16.630 に答える