Symfony2中的功能测试给出了错误:声明false为true的失败

时间:2015-03-06 10:59:43

标签: php symfony phpunit functional-testing

我在这方面采取行动:

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());
}

1 个答案:

答案 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状态 - 如果是,请找出原因(或通过其他信息扩展您的问题)。