4

私が取り組んでいるテストケースは次のとおりです。

    it "should allow you to login" do
    visit "/"
    fill_in 'Email', :with => 'user@example.org'
    fill_in 'Pass', :with => 'password'
    click_button 'Login'
    current_url.should =~ /dashboard/
end

この特定のテストは失敗しています。私が知りたいのは、ログインできないために失敗しているのか、current_url のチェックが速すぎるために失敗しているのかということです。click_button タスクが実行され、レールがユーザーをリダイレクトするまで「待機」する適切な方法は何ですか?

4

1 に答える 1

3

手動でホームページにアクセスし、それらの資格情報でログインして、何が起こるかを確認しましたか? それができれば、それが機能しないという考えを排除することができます。

URL の名前を照合する代わりに、組み込みのアサーションを使用することをお勧めします。そのようです:

assert_response(:redirect)
assert_redirected_to(dashboard_path)

いずれの場合も、ボタンがクリックされるまで待つ必要はありません。

于 2012-05-22T18:16:54.213 に答える