PHPunit来测试catch块

时间:2015-02-27 08:29:33

标签: php testing phpunit try-catch

我有一个像这样的代码:

public function one()
{
   try {
      $this->two();
   } catch (Exception $E) {
      $this->three();
   }
}

如何测试调用$this->three()函数?

我试图“通过代码模拟”$this->two()并抛出错误而不是它的原始代码,但最终会被phpunit本身捕获到错误。

尝试了setExpectedException,但它也没有解决问题 - catch再次在phpunit中运行而被忽略。

在两种情况下都没有调用函数$this->three()

谢谢!

1 个答案:

答案 0 :(得分:1)

问题在于所描述的方法位于一个类中,该类放在包含它自己的Exception实现的命名空间中。所以我在抛出\Namespace\Exception的同时抓住\Exception

投掷了正确的异常。

@sectus,谢谢!