PHPunit测试挡块

PHPunit测试挡块,php,testing,phpunit,try-catch,Php,Testing,Phpunit,Try Catch,我有这样一个代码: public function one() { try { $this->two(); } catch (Exception $E) { $this->three(); } } 如何测试调用了$this->three()函数 我曾尝试“按代码模拟”$this->two(),并抛出错误,而不是它的原始代码,但最终由phpunit本身捕获错误 尝试了setExpectedException,但它也不能解决问题-在phpuni

我有这样一个代码:

public function one()
{
   try {
      $this->two();
   } catch (Exception $E) {
      $this->three();
   }
}
如何测试调用了
$this->three()
函数

我曾尝试“按代码模拟”
$this->two()
,并抛出错误,而不是它的原始代码,但最终由phpunit本身捕获错误

尝试了setExpectedException,但它也不能解决问题-在phpunit中再次运行catch,只是被忽略了

函数
$this->three()
在这两种情况下都不会调用


谢谢

问题在于,所描述的方法位于一个类中,该类位于包含其自身异常实现的命名空间中。因此,我捕获了一个
\Namespace\Exception
,同时抛出了一个
\Exception

抛出正确的异常就成功了


@斯提库斯,谢谢你

“代码模拟”是什么意思?似乎您的类被放置在名称空间中。尝试
\Exception
@amrhady,我使用runkit\u函数\u redefinite来更改代码,并将其更改为
抛出新的\Exception('test')@sectus,你说得对,谢谢!(问题已解决)