2011-01-09 13 views
1

Ich habe große Probleme damit, Funktionstests mit Devise und deklarativer Autorisierung durchzuführen. Ich kann die Devise test helpers verwenden, um sign_in einen Benutzer und dann die current_user-Variable in der Steuerung aufgefüllt. Aber sobald ich den post_with-Testhelfer für die deklarative Autorisierung verwende, wird current_user gleich Null.Devise and Declarative Authorization Probleme beim Funktionstest

Kann mir jemand auf ein Beispiel hinweisen, wie man Funktionstests schreibt, wenn man zusammen mit einer deklarativen Autorisierung arbeitet?

Dank

Antwort

1

Ich hatte das gleiche Problem. Sie können deklarative Autorisierungen wie z. B. post_with in Funktionstests mit devise nicht verwenden.

Für den Funktionstest müssen Sie den Testhelper wie z. B. sign_in und sign_out verwenden. Ich habe geschrieben einen Helfer, der die devise Testhilfsmethoden für Funktionstests verwendet:

def test_with_user(user, &block) 
    begin 
    sign_in :user, users(user) 
    yield 
    ensure 
    sign_out :user 
    end 
end 

Dieser Helfer i in folgender Weise verwenden:

test_with_user(:max) do 
    get :new 
    assert_response :success 
end 

Hoffnung, das hilft.

+0

Brilliante Lösung Danke - funktioniert gut! –