Тестирование перенаправления после входа в систему с разработкой
-
26-09-2019 - |
Вопрос
Я следовал по рекомендации от страниц разработки GitHub для этого:
http://github.com/plataformatec/devise/wiki/how-to:-direct-to-a-specific-page-successful-sign-in.
Теперь это работает отлично, но как бы вы проверили, что у вас сейчас такое поведение?
Решение
Ну, есть два способа тестирования его в уровне единицы, написав тесты в контроллерах, которые наследуют контроллер приложений. Код будет выглядеть что-то вроде
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
Для огурца вы, вероятно, должны написать шаг, чтобы сделать логин и утверждать, если вы находитесь в ожидаемом после нашей страницы Sign_in.
Другие советы
Хм ... Я думаю, что вы должны написать собственные тесты интеграции, чтобы проверить поведение. Нет необходимости модульных тестов или функциональных испытаний, если вы не связываете с Devise Code.
Если вы просто используете мини-тест, это было бы что-то подобное:
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