Wie test POST-Routen in Laravel
Ich mache den folgenden test ein POST-Aufruf zu Laravel. Ich erwarte, dass die POST zu Fragen, in übereinstimmung mit meinen Routen, werden Einsätze wie die action-Methode speichern. Dies funktioniert im browser.
Mein test:
public function setUp()
{
parent::setUp();
Session::start();
}
public function testStoreAction()
{
$response = $this->call('POST', 'questions', array(
'_token' => csrf_token(),
));
$this->assertRedirectedTo('questions');
}
Aber ich sagt mir, dass der redirect nicht übereinstimmen. Ich kann auch sehen, dass es nicht in den laden gehen, action-Methode überhaupt. Ich will wissen, was action-Methode es ist, und warum es nicht in den laden gehen, Methode (wenn ich sehe, route:Liste, ich kann sehen, es gibt eine POST Fragen/route gehen sollten, um zu Fragen.speichern; dies funktioniert auch im browser, aber nicht in meinen tests). Auch, Schreibe ich den Aufruf richtig für diese Ressource? Ich habe den token hier, wie es war, eine Ausnahme zu werfen, wie es sollte, in einigen tests lasse ich die token check übergeben.
- können Sie den eigentlichen Fehler Beschreibung, danke
- Es ist unwahrscheinlich, dass die POST-Parameter sind nur die csrf-token. Wohl in Ihrer Steuerung haben Sie eine Art Bestätigung, dass die Anfrage die Umleitung zurück auf die Vorherige Position (302-response-code). Sie können überprüfen, ob dies der Fall ist, indem Sie die debugging-Sitzung mit
dd(Session::get('errors'))
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen, diese:
Die am häufigsten empfohlene Weg, um zu testen Sie Ihre Routen ist zu prüfen, für
200
Antwort. Dies ist sehr hilfreich, wenn Sie mehrere tests, wie Sie überprüfen alle Ihrepost
Routen auf einmal.Dazu verwenden Sie einfach:
War ich immer ein
TokenMismatchException
und das es behoben, vielleicht hilft es dir zuLaravel Unit Fällen ohne middleware