我正在尝试使用在调用某个方法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);
}
}
答案 0 :(得分:8)
您正在投掷\Exception
但正在追赶Exception
。是否在命名空间中实现addEntity()
的类?更改它以捕获\Exception
可以解决问题吗?如果没有,请尝试更改测试以抛出Exception
。