gpt4 book ai didi

php - 在 phpUnit 中模拟异常

转载 作者:行者123 更新时间:2023-12-04 22:02:02 25 4
gpt4 key购买 nike

我尝试测试的方法有一个 try catch

try {
$fooClass->doStuff(); // Throws \Lib\Custom\Exception
}
catch (\Lib\Custom\Exception $exception) {
return false;
}

我想测试返回是否为 false,但执行测试时未加载自定义异常。

Php 单元可以选择模拟类,但我似乎无法将其用于异常。

$exceptionMock= $this->getMockBuilder(\Lib\Custom\Exception::class)->getMock();

$fooClassMock = $this->getMockBuilder(fooClass::class)->getMock()
->method('doStuff')
->willThrowException($exceptionMock);

给我以下异常:

Argument 1 passed to 
PHPUnit_Framework_MockObject_Builder_InvocationMocker::willThrowException()
must be an instance of Exception, instance of Mock_Exception_c4dd9394 given

如何正确模拟此异常来测试功能?

最佳答案

我认为您不需要模拟异常。

为什么不试试这个呢?

$fooClassMock = $this->getMockBuilder(fooClass::class)->getMock()
->method('doStuff')
->willThrowException(new \Lib\Custom\Exception());

或者类似的东西..

关于php - 在 phpUnit 中模拟异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47527550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com