Frage

Ich habe folgte der Empfehlung aus dem Entwickeln, github-Seiten für dieses:

http://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

Nun, das funktioniert gut, aber wie würden Sie testen, dass Sie dieses Verhalten jetzt?

War es hilfreich?

Lösung

Nun, es gibt zwei Arten von Tests es in der unit-Ebene durch das schreiben von tests für den Controller, die Erben der application-controller.Der code wird so Aussehen

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

Für Gurken sollte man wohl schreiben, einen Schritt zu tun, den login und geltend zu machen, wenn u sind auf die voraussichtlich nach sign_in Seite.

Andere Tipps

HM ... Ich denke, Sie sollten eigene Integrationstests schreiben, um das Verhalten zu überprüfen. Sie benötigen keine Unit -Tests oder Funktionstests, wenn Sie sich nicht mit dem Devise -Code angelegt haben.

Wenn Sie nur einen Mini -Test verwenden, wäre es so etwas:

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top