質問

これについては、devise githubページからの推奨事項に従いました。

http://github.com/plataformatec/devise/wiki/how-oto:-redirect-to-pecific-page-on-successful-sign-in

これはうまく機能しますが、この動作があることをどのようにテストしますか?

役に立ちましたか?

解決

さて、アプリケーションコントローラーを継承するコントローラーにテストを作成することにより、ユニットレベルで1つをテストする方法が2つあります。コードは次のようになります

it "should redirect to page_x after logged in" do
  sign_in :user_role, @user 
  set_devise_mapping(:user_role) 
  get :new 
  response.should redirect_to(user_roles_dashboard_path) 
end

キュウリの場合、おそらくログインを行うためのステップを記述し、sight_inページの後に予想される場合はアサートする必要があります。

他のヒント

HM ...動作を確認するために独自の統合テストを作成する必要があると思います。 Deviseコードを台無しにしなかった場合、単体テストや機能テストの必要はありません。

ミニテストを使用しているだけなら、それは次のようなものになります:

require 'test_helper'

class SessionsControllerTest < ActionDispatch::IntegrationTest
  include Devise::Test::IntegrationHelpers

  test "admins should be redirected to comments_url" do
    sign_in(users(:one))
    post user_session_url
    assert_redirected_to comments_url
  end

  test "No admins should be redirected to root_path" do
    sign_in(users(:two))
    post user_session_url
    assert_redirected_to root_url
  end
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top