我正在尝试使用 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) 在 org.powermock.core.MockGateway.doMethodCall(MockGateway.java:104) 在 org.powermock.core.MockGateway.methodCall(MockGateway.java:167) 在 .ClassC.methodA(ClassC.java )
对我所缺少的有什么想法吗?我知道我没有包含太多细节,但是我已经准备了 ClassA 以使用该符号进行测试,我也只将回放放在一个地方,以确保在设置期望值之前我不会错误地将 mockClassA 置于错误状态。