Wie kann ich den Auth Filter in Laravel 4.1 testen?

7

Ich möchte einen Komponententest schreiben, der prüfen soll, ob ein nicht authentifizierter Benutzer die Benutzerliste anzeigen kann (was er nicht kann).

Meine Routen

%Vor%

Mein Test

%Vor%

Mein Filter

%Vor%

Ergebnis

Fehler beim Aktivieren, dass das Illuminate \ Http \ Response-Objekt (...) eine Instanz der Klasse "Illuminate \ Http \ RedirectResponse" ist.

Wenn ich die $ -Antwort vom Test protokolliere, zeigt es die vollständige Benutzerliste an, als ob ein Admin während des Tests angemeldet wäre.

Wenn ich mit einem Browser zu admin / users blättere, ohne mich einzuloggen, werde ich zur Anmeldung weitergeleitet, so wie ich sollte, also funktioniert der Auth-Filter tatsächlich.

Fragen

  1. Gibt es in Laravel etwas, das den ersten Benutzer während des Tests für Sie standardmäßig anmeldet? Oder ist Auth :: guest () während des Testens standardmäßig immer falsch?
  2. Wenn ja, wie werde ich während des Komponententests "ausgeloggt"? Ich habe $ this- & gt; be (null) versucht, habe aber einen Fehler erhalten, der besagt, dass das übergebene Objekt UserInterface implementieren muss.
Maciej Swic 22.03.2014, 17:15
quelle

1 Antwort

18

Laravel-Filter werden automatisch für Komponententests deaktiviert; Sie müssen sie für einen bestimmten Testfall aktivieren.

%Vor%

Oder wenn Sie die statischen Fassaden nicht gerne nutzen

%Vor%

Sehen Sie in der Dokumentation zum Komponententest nach.

Ihr Test sollte jetzt den korrekten Objekttyp zurückgeben, damit Ihr Test bestanden werden kann.

    
David Barker 22.03.2014, 17:25
quelle