作者:天雨 | 来源:互联网 | 2023-01-21 11:30
PHPUnit让我使用以下任一方法创建方法存根以抛出异常:
[->will($this->throwException(..)][1]
->willThrowException(..
我需要测试方法存根抛出PHP错误的一些情况.
PHPUnit是否支持这样的东西?这里有变通方法吗?
1> Nikhil Kuria..:
PHPUnit TestCase类中的throwException()可以将Throwable的任何实例作为param.
这意味着,
->will($this->throwException(new Error()));
->will($this->throwException(new Exception()));
都是有效的
顺便说一句,您可以使用`willThrowException()`代替.
2> Matt Doran..:
您可以在测试中使函数抛出异常,如下所示:
$handlerCOnsentMessage= $this->getMockBuilder('YourClass')
->setMethods(array('yourMethod'))->getMock();
$handlerConsentMessage->method('yourMethod')->willThrowException(new Exception());
$handlerConsentMessage->run('functionToRun');
现在,如果您曾经调用过函数YourToMethod,则在运行测试函数functionToRun时,它将引发异常。