PHPUnit在setExpectedException()之后停止执行

PHPUnit在setExpectedException()之后停止执行,php,phpunit,Php,Phpunit,我有以下伪代码 public function testSomething() { // assert something // assert something else $this->setExpectedException(...); // trigger my exception here // do one last thing } 我看到的问题是,触发异常后的代码永远不会生成。这是正确的吗 这只是一个一般性的疑问-如果这是正常的,我

我有以下伪代码

public function testSomething() {
    // assert something
    // assert something else

    $this->setExpectedException(...);
    // trigger my exception here

    // do one last thing
}
我看到的问题是,触发异常后的代码永远不会生成。这是正确的吗


这只是一个一般性的疑问-如果这是正常的,我将重构我的测试以直接执行try/catch,如果没有捕获任何内容,则执行
fail()
测试。

不应执行异常后的代码。将
setExpectedException
视为将测试转换为
try--catch
,这样抛出异常后的代码将不会执行

如果你需要在异常发生后做/检查事情,你应该抓住它。尽管您的捕获有一个警告,但要具体说明抛出了什么异常。PHPUnit为失败的测试抛出异常,您可能意外捕获此异常,这可能导致您的测试错误通过

更新:
如果您正在执行的代码正在清理中,请考虑将其移到测试的拆卸方法中。

最好将测试后必须执行的代码放入<代码>拆解< /代码>。PHPUnter将调用是否存在异常。我主要考虑的是你可能想要做出的其他断言。