PowerMock を使用してプライベート メソッドをモックするための代替ソリューション
PowerMock を使用した最初に提案されたソリューションでは困難が発生しましたが、別のアプローチが成功したことが証明されています。 Mockito と PowerMock を組み合わせて使用すると、プライベート メソッドを効果的にモックできます。
提供されたコード スニペットに示されているように、CodeWithPrivateMethod クラスは、プライベート メソッド doTheGamble を呼び出すパブリック メソッド MeaningPublicApi を所有しています。 doTheGamble の動作を模擬するために、テスト クラス CodeWithPrivateMethodTest は PowerMock を使用して元のクラスのインスタンスを監視し、Mockito を使用して必要な戻り値を指定します。
この特定のシナリオでは、プライベート メソッド doTheGamble が呼び出されるとき、文字列および整数の引数を指定した場合は、true を返すように指示されます。これにより、パブリック メソッド MeaningPublicApi が RuntimeException をトリガーします。
完全なテスト構成は、PowerMock の @PrepareForTest アノテーションによって実行され、テスト対象のクラスがスパイの準備が整っていることが保証されます。テストは、静的メソッドとプライベート メソッドのモックを容易にする PowerMockRunner を使用して実行されます。
以上がPowerMock と Mockito を使用してプライベート メソッドを効果的にモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。