Тестирование перенаправления после входа в систему с разработкой

StackOverflow https://stackoverflow.com/questions/4036861

Вопрос

Я следовал по рекомендации от страниц разработки 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top