@PrepareForTest({...,..., XXX.class})
...
@Test
public void testMethodToBeTested(){
XXX mockInstance = PowerMock.createMock(XXX.class);
...
PowerMock.expectNew(XXX.class, p1, p2, p3, p4, p5).andReturn(mockInstance);
mockInstance.methodWithNoReturnVal();
expect(mockInstance.getSearchVal()).andReturn(1);
PowerMock.replay(mockInstance);
Whitebox.invokeMethod(objInstance, "methodToBeTested");
PowerMock.verify(mockInstance);
}
基本的に、プライベート メソッド methodToBeTested() をテストしたいと考えています。このメソッドは、型 XXX.class のオブジェクトを (new 演算子を使用して) インスタンス化し、それをインスタンス変数に格納します。私はこのオブジェクトを嘲笑しました。次に、モックを介して methodWithNoReturnVal() を呼び出し、次に 1 を返すように構成したゲッター メソッドを呼び出します。
「IllegalStateException: 構成された期待値を取得するには、クラス XXX.class を再生する必要があります」というエラーが表示されます。
どんな助けでも大歓迎です。PowerMock と EasyMock はまだ初心者です。expectNew(...) メソッドを使用する必要があったため、テスト メソッド内ですべての PowerMock API を使用するようにしました。