Funktionsprüfung von Ruby on Rails mit dem Plugin RESTful Authentication

8

Ich habe heute angefangen, funktionale Tests für meine Rails-App zu schreiben. Ich benutze das RESTful-Authentifizierungs-Plugin. Ich stieß auf ein paar verwirrende Dinge, von denen ich hoffe, dass sie jemand für mich klären kann.

1) Ich habe eine schnelle Login-Funktion geschrieben, da die meisten Funktionen in meiner Rails-App eine Authentifizierung erfordern.

%Vor%

Das Problem, das ich mit dieser Funktion sehe, ist die Fälschung der Authentifizierung. Sollte ich mir deswegen Sorgen machen? Vielleicht ist es in Ordnung, diese Route zu gehen, solange ich irgendwo die wahre Authentifizierungsmethode teste. Oder vielleicht ist das eine schreckliche Übung.

2) Die zweite verwirrende Sache ist, dass ich an einigen Stellen in meinen Funktionstests den vollständigen Authentifizierungsprozess durchführen muss. Wenn ein Benutzer aktiviert ist, habe ich mit der Methode do_activate einige initiale Objekte für den Benutzer erstellt. Dies ist analog zur Erstellung eines leeren Notizbuchobjekts und Stiftobjekts für eine Schüleranwendung, wenn dies sinnvoll ist.

Damit ich meine Anwendung richtig testen kann, muss der Benutzer diesen Aktivierungsstatus treffen, damit diese Objekte erstellt werden. Ich verwende derzeit Factory Girl, um den Benutzer zu erstellen, und rufe anschließend die obige login_as-Funktion auf, um die Authentifizierung zu fälschen.

Ich denke, eine andere Option wäre, die vollständige Authentifizierungssequenz zu überspringen und einfach die leeren Objekte mit Factory Girl zu erstellen. Ich könnte die richtige Authentifizierung woanders testen.

Was denkst du? Wenn ich die richtige Reihenfolge durchgehen sollte, warum ruft der folgende Code nicht die Funktion do_activate auf?

%Vor%

Danke!

    
Tony 15.05.2009, 06:19
quelle

1 Antwort

7

Das Faken ist vollkommen akzeptabel.

Schreiben Sie jedoch andere Tests, die sicherstellen, dass die Dinge, die Sie schützen möchten, geschützt sind. Also

%Vor%

Fühlen Sie sich frei, mich für Folgemaßnahmen zu treffen!

    
Brian Hogan 16.05.2009, 01:46
quelle