これはおそらく PowerMock/EasyMock 101 の質問で、理由がわかりません。私はメソッドを持つクラスCを持っています
public static boolean testInner(String s) {
return false;
}
public static boolean testOuter() {
String x = "someValue";
return testInner(x);
}
私の testOuter() メソッドのテストでは、testInner が適切なパラメーターで呼び出されるようにしたいと考えています。そのために、私は次のようなことをしています: [@RunWith(PowerMockRunner.class) @PrepareForTest(EmailUtil.class) クラスレベルで宣言]
EasyMock.expect(C.testInner("blabla")).andReturn(true);
PowerMock.replayAll();
boolean status = C.testOuter();
PowerMock.verifyAll();
assertTrue(status);
しかし、次のようなエラーが発生しています:
java.lang.AssertionError:
Unexpected method call testOuter():
testInner("blabla"): expected: 1, actual: 0
at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:45)
at org.powermock.api.easymock.internal.invocationcontrol.EasyMockMethodInvocationControl.invoke(EasyMockMethodInvocationControl.java:95)
at org.powermock.core.MockGateway.doMethodCall(MockGateway.java:105)
at org.powermock.core.MockGateway.methodCall(MockGateway.java:60)
at C.testOuter(C.java)
実際のパラメーターを EasyMock.IsA(String.class) に置き換えましたが、まだうまくいきません。私はここで根本的にばかげたことをしていると確信しています。何か助けはありますか?