我尝试使用PHPUnit(具有代码接收功能,但是这里的代码接收功能不是错)来获取异常模拟,并且用getMock()
抛出错误,并且没有错误消息(我只给出了stackTrace)
我通过PHPStorm启动命令,这里是控制台中显示的命令
C:\php-7.3.1\php.exe C:/Users/Etshy/AppData/Local/Temp/ide-codeception.php run --report -o "reporters: report: PhpStorm_Codeception_ReportPrinter" --no-ansi --no-interaction tests\unit\Http\ClientTest.php:testRequest404
这是结果:
Codeception PHP Testing Framework v3.0.1
Powered by PHPUnit 8.2-g24fc15955 by Sebastian Bergmann and contributors.
Running with seed:
D:\PhpStormProjects\imgur-php-wrapper\vendor\doctrine\instantiator\src\Doctrine\Instantiator\Instantiator.php:70
D:\PhpStormProjects\imgur-php-wrapper\vendor\doctrine\instantiator\src\Doctrine\Instantiator\Instantiator.php:59
D:\PhpStormProjects\imgur-php-wrapper\tests\unit\Http\ClientTest.php:101
C:\Users\Etshy\AppData\Local\Temp\ide-codeception.php:40
Time: 390 ms, Memory: 12.00 MB
There was 1 error:
---------
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
Process finished with exit code 1
这是导致此问题的getMock
呼叫
$exception = $this->getMockBuilder(ClientException::class)
->disableOriginalConstructor()
->getMock();
我还尝试了CodeCeption方法make()
和makeEmpty()
,但出现了完全相同的错误(这就是为什么以后我尝试直接使用PHPUnit方法进行操作而无法成功的原因。)
ClientException是GuzzleHttp\Exception\ClientException
。
在此之前只能创建Mock对象。
任何人都知道导致错误的原因是什么?我不明白。