我似乎无法正确地执行此操作,异常的错误消息只是打印出来,使命令行窗口更难阅读。下面是我的代码的结构和测试代码。
public function availableFruits($fruit)
{
switch($fruit) {
case 'foo':
// all good
break;
case 'bar':
// all good
break;
default:
throw new Exception($fruit.' not available!');
break;
}
}
public function chooseFruit($fruit)
{
try {
availableFruits($fruit);
} catch (Exception $e) {
echo $e->getMessage();
}
}
public function testAvailableFruits()
{
$this->setExpectedException('Exception');
chooseFruit('Kiwi');
}
错误消息将在命令行窗口中打印出来,如下所示。我尝试了 phpunit.de 中显示的所有方法,但结果相同。
..Error on line 13 in c:\file\path\fruits.php: Kiwi not available!.F
打印出错误行,我该如何抑制它,我做对了吗?
最佳答案
我相信另一种方法是在测试方法中添加一个注释 block ,看起来像...
/**
* @expectedException ExpectedExceptionName
*/
或者,如果您没有进入 catch block ,您也可以自己捕获导致方法失败的异常。
关于PHPUnit异常测试,错误信息打乱结果输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1896766/