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将调用是否存在异常。我主要考虑的是你可能想要做出的其他断言。