PHPUnit存根抛出异常但不允许被捕获

joe*_*dms 8 php phpunit

我正在尝试使用在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)

Dav*_*ess 8

你在扔,\Exception但抓住了Exception.是addEntity()在命名空间中实现的类吗?更改它以\Exception解决问题吗?如果没有,请尝试将测试更改为throw Exception.