6

OK, ich schreibe Leistungstests und habe Probleme, meine Sitzung zu erhalten, wie es bei Integrationstests der Fall ist. Nach meinem Verständnis ist PerformanceTest ein Kind von IntegrationTest und alle Integrationstests sollten mit einem Leistungstest funktionieren. Wenn ich jedoch einen Integrationstest mache und ihn in die Performance überspiele, ändere den ActionController :: IntegrationTest zu ActionController :: PerformanceTest und führe dann den Test aus.Warum läuft meine Sitzung ab, wenn PerformanceTest und nicht IntegrationTest verwendet wird?

Ich benutze Authlogic und hatte kein Problem mit den Integration Testsitzungen rumstehen. Bei den Leistungstests sieht es zwar so aus, als würde die Sitzung ordnungsgemäß erstellt, aber wenn ich die "/ reports" -Seite (die eine geschützte Seite ist) besuche, leitet sie mich auf die Anmeldeseite um, als ob überhaupt keine Benutzersitzung vorhanden wäre.

require 'performance_test_help' 

class SimpleTest < ActionController::PerformanceTest 
    setup :activate_authlogic 

    test "login" do 
    assert user_session = UserSession.create!(User.find_by_login("admin")) 

    get "/reports" 
    assert_response :success 
    end 
end 

Was geht hier vor? Ich habe mehrere Möglichkeiten ausprobiert, um eine Benutzersitzung (create, post, etc.) zu bekommen und nichts scheint zu funktionieren. Dies ist das erste Mal, dass ich Leistungstests geschrieben habe, also mache ich wahrscheinlich etwas dummes ...

BTW: Ich habe Ruby 1.8.7, Rails 2.2.2 auf Debian Squeeze ausgeführt.

+0

Ich habe das gleiche Problem und würde sicherlich alle Hinweise zu schätzen wissen ... Haben Sie das Problem selbst gelöst? –

+0

Nenn mich einen AOLer. Ich auch! Irgendeine Reparatur? – kwerle

Antwort

1

Sie müssen Ihre Leistungstests wie Ihre Integrationstests einrichten.

Versuchen Sie es mit Post anmelden:

post "user_session", :user_session => {:login => "user", :password => "password"} 
+0

Ja, Sie müssen posten, um sich einzuloggen, um eingeloggt zu werden, weil die uses_session im Test eine lokale Variable und keine applikationsspezifische Variable wird. –

0

nicht sicher, was in Ihrem Setup gibt es, aber Sie require 'test_helper' auch fehlen. Wenn diese Methode vorhanden ist oder in einem Authlogic-Testhelfer, müssen Sie möglicherweise sicherstellen, dass sie enthalten ist.

Verwandte Themen