如何使用 PHPUnit 测试多个异常?
2022-08-30 14:49:53
在使用 PHPUnit 测试异常时,要求每个语句或断言都必须引发异常才能通过测试的最佳方法是什么?
我基本上想做这样的事情:
public function testExceptions()
{
$this->setExpectedException('Exception');
foo(-1); //throws exception
foo(1); //does not throw exception
}
//Test will fail because foo(1) did not throw an exception
我想出了以下几点,它完成了这项工作,但是IMO非常丑陋。
public function testExceptions()
{
try {
foo(-1);
} catch (Exception $e) {
$hit = true;
}
if (!isset($hit))
$this->fail('No exception thrown');
unset($hit);
try {
foo(1);
} catch (Exception $e) {
$hit = true;
}
if (!isset($hit))
$this->fail('No exception thrown');
unset($hit);
}