Функциональное тестирование в Symfony2 дает мне ошибку: не удалось утверждать, что false — это правда

У меня есть действие, где я делаю это:

return $this->redirect($this->generateUrl('url_key'));

В моем тесте я делаю это:

$this->assertTrue($client->getResponse()->isRedirect());

Но я получаю ошибку:

Не удалось утверждать, что ложь является истиной

Где моя проблема? Почему я получаю ошибку?

Мой полный тест:

public function testDeleteAction()
{
$client = static::createClient();
$client->request('GET', '/translation/delete/messages/test.key');
$client->followRedirects();
$this->assertTrue($client->getResponse()->isRedirect());
}

1

Решение

Вы должны использовать followRedirect только если вы хотите выполнить другой запрос после получения ответа перенаправления. Вам не нужно это в вашем случае (и даже вы не должны использовать его — если вы делаете followRedirects тогда вы получите другой ответ, который больше не является «перенаправленным ответом» — так что утверждение не удастся).

Возможно, что-то пошло не так с первым запросом. Проверьте статус и, возможно, содержание ответа:

public function testDeleteAction()
{
$client = static::createClient();
$client->request('GET', '/translation/delete/messages/test.key');
// of course you should use the "pro-way" and check it with debbuger instead of var_dumps ;)
var_dump($client->getResponse()->getStatus());
var_dump($client->getResponse()->getContent());
$this->assertTrue($client->getResponse()->isRedirect());
}

Проверьте, нет ли статуса 404 или 500 — и если да, то выясните почему (или дополните свой вопрос дополнительной информацией).

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]