/ / Symfony2 Funktionstest-Weiterleitung - PHP, Pause, Symfony, Phpunit

Symfony2 Funktionstest Redirect - PHP, Ruhe, symfony, phpunit

Ich arbeite mit Symfony2 und dem FOSRestBundle und versuche jetzt, einen Funktionstest für meine Rest-API zu schreiben. Ich möchte einen Benutzernamen POST POST und ihn ähnlich anzeigen http://npmasters.com/2012/11/25/Symfony2-Rest-FOSRestBundle.html. Das heißt, mein Controller gibt eine View::createRedirect([...],Codes::HTTP_CREATED) Beispiel.

Nun sieht mein Test so aus:

[...]
$client = static::createClient(array("debug"=>true));
$request = $client->request("POST", "/names",
array(),
array(),
array("CONTENT_TYPE" => "application/json"),
$expression);

$response = $client->getResponse();
print_r($response);
$this->assertEquals($response->getStatusCode(), 201);
$response = $client->followRedirect();
print_r($response);

Wenn ich es starte, bekomme ich folgende Ausgabe:

SymfonyComponentHttpFoundationResponse Object
(
[...]
[location] => Array
(
[0] => /names/90
)
[...]

There was 1 error:

1) MYNAMEMyBundleTestsControllerRestControllerTest::testAddUser
LogicException: The request was not redirected.

Warum wurde es nicht umgeleitet? Wo ist mein Fehler?

Danke für jede Hilfe!

Antworten:

0 für die Antwort № 1

Wenn Sie eine Weiterleitung generieren möchten, sollte Ihr Backend eine 301 ("Permanent") oder 302 ("Temporärer") HTTP-Status. Ein Statuscode von 201 ist nicht wirklich eine Weiterleitung, auch wenn Sie ein Location Header. Ich denke, es hängt von der Client - Implementierung ab, was auf einem Client geschieht 201 + Location.