2009-08-23 8 views
3

Ich habe Probleme mit Gurken und Webrat haben, um authlogic-openid Authentifizierung in einer Rails App zu testen. Nach Ryan Bates excellent screencast konnte ich Authlogic mit dem Open-ID-Plugin installieren. OpenID funktioniert, wenn ich mich mit dem Browser anmelde, aber bisher konnte ich die App nicht mit Gurke und Webrat testen.Was ist der beste Weg, um authlogic-open-id mit Gurke und Webrat zu testen?

Ich habe versucht, rots als Dummy Open ID-Server. Auch dies funktioniert, wenn ich es im Browser ausprobiere, aber webrat wird den get/post-Weiterleitungen, die für die Authentifizierung mit dem Pseudo-ID-Server erforderlich sind, nicht korrekt folgen.

This answer on SO suggests überschreiben die Authentifizierungsmethode, um immer eine erfolgreiche Anmeldung zurückzugeben, aber dieser Ansatz scheint nicht wie Integrationstest der Anwendung.

Was ist der beste Weg, authlogic-open-id funktional zu testen? Sollte ich überhaupt stören? Sollte ich die Aktionen testen, wenn der Benutzer bereits angemeldet ist und davon ausgeht, dass OpenID funktioniert?

Antwort

1

Ich stellte die gleiche Frage auf der Authlogic Mailingliste. Ich habe eine gute Antwort bekommen, die mich anweist, WWW zu benutzen: Mechanise mit irgendeinem Patch-Code, der webrat alle Weiterleitungen folgen lässt. Dies scheint zu funktionieren, um Integrationstests für Schienen durchzuführen, indem die offene ID von authlogic mit einem lokalen Open-ID-Server verwendet wird.

Hier ist die discussion thread.

2

haben Sie den Testhelfer set_session_for(@user) ausprobiert? Ich würde annehmen, dass das Plugin getestet wurde und es wirklich keine Notwendigkeit gibt, es erneut zu testen (es sei denn, Sie haben es geändert).

+0

Vielen Dank für Ihre Antwort. Ich denke nicht, dass es möglich ist, Sitzungsvariablen für Webrat zu setzen, da es sich wie ein Browser verhält, der die Website unabhängig vom Testcode anzeigt. Daher können Ruby-Variablen nicht übergeben werden. Ich versuche auch nicht, authlogic speziell zu testen, sondern wie meine Authentifizierungssysteme auf der gesamten Website funktionieren. –

Verwandte Themen