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,你说得对,谢谢!(问题已解决)