我正在尝试使用在create调用某个方法时抛出异常的存根来测试try/catch块.它工作正常,异常被引发,但它不是我的应用程序捕获它,它停止测试的执行.有什么更好的方法可以做到这一点.
<?php
// TestCase
$mockDao->expects($this->once())
->method('create')
->will($this->throwException(new \Exception));
$service->addEntity($data);
?>
<?php
// Service
public function addEntity($data)
{
....
try {
...
$this->create($entity); // Test Halts with Exception
...
} catch (Exception $e) {
// Never Gets Called
$this->handleException($e);
}
}
Run Code Online (Sandbox Code Playgroud)
你在扔,\Exception但抓住了Exception.是addEntity()在命名空间中实现的类吗?更改它以\Exception解决问题吗?如果没有,请尝试将测试更改为throw Exception.