У меня есть действие, где я делаю это:
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());
}
Вы должны использовать 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 — и если да, то выясните почему (или дополните свой вопрос дополнительной информацией).
Других решений пока нет …