PowerMockを使用してサードパーティのコードをモックしようとしていますが、拡張メソッドに問題があります。
そこで、何が起こっているのかを示すスニペットを提供します。
ClassA extends ClassB{
super();
}
ClassB extends ClassC{
super();
}
ClassC {
String methodA();
}
今、私はClassAをモックしようとしています。それは、私のコードが使用しているものだからです。モックはうまく作成されますが、次のような期待を追加すると、次のようになります。
expect(mockClassA.methodA()).andReturn("string");
次のエラーが発生します。
java.lang.IllegalStateException:org.powermock.api.easymock.internal.invocationcontrol.EasyMockMethodInvocationControl.invokeのorg.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:43)で前のメソッド呼び出しmethodA()の動作定義がありません(EasyMockMethodInvocationControl.java:95)at org.powermock.core.MockGateway.doMethodCall(MockGateway.java:104)at org.powermock.core.MockGateway.methodCall(MockGateway.java:167)at .ClassC.methodA(ClassC.java )。
私が欠けているものについて何か考えはありますか?あまり詳細を含めていないことはわかっていますが、表記を使用してテスト用にClassAを準備しました。また、期待値を設定する前に、mockClassAを誤って間違った状態にしないように、リプレイを1か所に配置しました。