我在这方面采取行动:
return $this->redirect($this->generateUrl('url_key'));
在我的测试中,我这样做:
$this->assertTrue($client->getResponse()->isRedirect());
但我得到错误:
声明false为真的失败
我的问题在哪里?为什么我会收到错误?
我的全面测试:
public function testDeleteAction()
{
$client = static::createClient();
$client->request('GET', '/translation/delete/messages/test.key');
$client->followRedirects();
$this->assertTrue($client->getResponse()->isRedirect());
}
答案 0 :(得分:3)
只有在获得重定向响应后才要执行其他请求时,才应使用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状态 - 如果是,请找出原因(或通过其他信息扩展您的问题)。