symfony2 phpunit:当不需要状态代码时如何获取异常消息
symfony2 phpunit : how to get exception message when status code is not expected one
在我的 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());
}
谢谢!
您可以使用 xDebug 来调试您的代码。
- 运行
export XDEBUG_CONFIG=1
从控制台或在浏览器中打开 xdebug cookie
- 在您的 IDE.
中打开 xdebug 侦听器
- 在您要调试的测试方法或
app.php
或控制器的操作上放置断点。
- 运行 您从控制台测试或在浏览器中重新加载页面
- 调试您的应用程序,直到出现异常。
关于如何设置 xDebug 的说明在 http://xdebug.org/
在 Ubuntu 你可以 运行:
sudo apt-get install php5-xdebug
您可以使用以下代码在您的测试中获得呈现的 HTML:
die($client->getResponse()->getContent());
您必须将其放在失败测试之前,PHPUnit 将显示 HTML 代码。虽然不方便,但帮了我很多次。
一个更好的解决方案是检查测试日志文件和 grep 是否有 CRITICAL 或 EXCEPTION
tail -f var/logs/test.log | grep exception
在我的 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());
}
谢谢!
您可以使用 xDebug 来调试您的代码。
- 运行
export XDEBUG_CONFIG=1
从控制台或在浏览器中打开 xdebug cookie - 在您的 IDE. 中打开 xdebug 侦听器
- 在您要调试的测试方法或
app.php
或控制器的操作上放置断点。 - 运行 您从控制台测试或在浏览器中重新加载页面
- 调试您的应用程序,直到出现异常。
关于如何设置 xDebug 的说明在 http://xdebug.org/
在 Ubuntu 你可以 运行:
sudo apt-get install php5-xdebug
您可以使用以下代码在您的测试中获得呈现的 HTML:
die($client->getResponse()->getContent());
您必须将其放在失败测试之前,PHPUnit 将显示 HTML 代码。虽然不方便,但帮了我很多次。
一个更好的解决方案是检查测试日志文件和 grep 是否有 CRITICAL 或 EXCEPTION
tail -f var/logs/test.log | grep exception