/ / Symfony2 функционален тест пренасочване - php, почивка, symfony, phpunit

Symfony2 функционален тест пренасочване - php, почивка, symfony, phpunit

Работя със Symfony2 и FOSRestBundle и сега се опитвам да напиша функционален тест за моята почивка api. Искам да ПОСТАВЯ потребителско име и да го покажа, подобно на http://npmasters.com/2012/11/25/Symfony2-Rest-FOSRestBundle.html, Т.е. моят администратор връща а View::createRedirect([...],Codes::HTTP_CREATED) инстанция.

Сега тестът ми изглежда така:

[...]
$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);

Когато го стартирам, получавам този изход:

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

There was 1 error:

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

Защо не беше пренасочен? Къде е моята грешка?

Благодаря ви за помощ!

Отговори:

0 за отговор № 1

Ако искате да генерирате пренасочване, би трябвало да генерирате a 301 ("Постоянен") или 302 ("Временно") състояние HTTP. Код на състоянието на 201 не е наистина пренасочване, дори ако зададете a Location глава. Мисля, че зависи от изпълнението на клиента какво се случва на а 201 + Location.