私がテストしようとしているメソッドの例外モックPHPUnitの
try {
$fooClass->doStuff(); // Throws \Lib\Custom\Exception
}
catch (\Lib\Custom\Exception $exception) {
return false;
}
私はリターンが偽テストするようにtryキャッチを持っていますが、私のテストがexcecutedされたときにカスタム例外がロードされていません。
PHP単位にはクラスをモックするオプションがありますが、これを例外として使用することはできません。
$exceptionMock= $this->getMockBuilder(\Lib\Custom\Exception::class)->getMock();
$fooClassMock = $this->getMockBuilder(fooClass::class)->getMock()
->method('doStuff')
->willThrowException($exceptionMock);
は私にfolowing例外を与える: Argument 1 passed to PHPUnit_Framework_MockObject_Builder_InvocationMocker::willThrowException() must be an instance of Exception, instance of Mock_Exception_c4dd9394 given
適切に機能をテストするには、この例外を模擬するためにどのように?
'\ Lib \ Custom \ Exception'は' \ Exception'を拡張していますか? – xmike
はい、そうですが、composer.jsonの自動ロードにはありません。 –
だから模擬が作成されるとき、それは '\ Exception'の子ではないようです。 – xmike