使用我的symfony 2应用程序,我使用phpunit来测试每个控制器的操作响应的状态代码是否是预期的。
如果没有,我怎么能让phpunit显示异常附带的错误消息,或者最好是模拟探查器异常页面?
原因是我有一个动作在phpunit中返回500代码,但在我的浏览器中加载就好了。
我的代码:
/**
* @dataProvider urlProvider
* @param $url
*/
public function testPageIsSuccessful($url)
{
$client = self::createClient(array(), array(
'PHP_AUTH_USER' => 'superadmin',
'PHP_AUTH_PW' => '587010',
));
$client->followRedirects();
$client->request('GET', $url);
var_dump($url);
$this->assertEquals(200, $client->getResponse()->getStatusCode());
}
谢谢!
答案 0 :(得分:3)
您可以使用 xDebug 来调试代码。
export XDEBUG_CONFIG=1
或在浏览器中启用xdebug Cookie app.php
或控制器操作上放置断点。说明,如何设置xDebug位于http://xdebug.org/
在 Ubuntu 中,您可以运行:
sudo apt-get install php5-xdebug
答案 1 :(得分:1)
您可以使用以下代码在测试中获取呈现的HTML:
die($client->getResponse()->getContent());
您必须在失败的测试之前放置它,PHPUnit将显示HTML代码。这不方便,但它帮助了我很多次。
答案 2 :(得分:1)
更好的解决方案是检查测试日志文件,并检查grep是否为CRITICAL或EXCEPTION
tail -f var/logs/test.log | grep exception