Deviseを使用したログイン後にリダイレクトのテスト
-
26-09-2019 - |
質問
これについては、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
所属していません StackOverflow