PHPUnit异常测试,错误信息打乱结果输出

标签 php exception-handling phpunit

我似乎无法正确地执行此操作,异常的错误消息只是打印出来,使命令行窗口更难阅读。下面是我的代码的结构和测试代码。

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/

相关文章:

php - 回显已发布 ID 的行名称,用于预选的表单值

php - 选择国家 HTML PHP

php - POST 数组不显示未选中的复选框

php - 如何使用 Zend 框架读取 Excel 文件?

c++ - 如何处理异常?

c# - 如何在单元测试中模拟在随机代码点抛出异常?

java - junit如何处理异常

php - 未使用 phpUnit 测试异常?

PHPUnit 找不到我的 Silex 路线

Symfony3+PHP单元。如何禁用控制台中的调试日志?