以下のテストの動作がよくわかりません。それを見ると、test_OK
とtest_Not_OK
は厳密に同等です。唯一の違いは、test_OK
「インライン化」されていることcallMethod
です。
ただし、失敗test_OK
する一方で合格test_Not_OK
します。その行動には理由がありますか?
public class MethodCallTest {
@Test
public void test_Not_OK() {
new NonStrictExpectations() {
Whatever w;
{
callMethod();
}
private void callMethod() {
w.method();
result = 1;
}
};
assertEquals(new Whatever().method(), 1); //fails
}
@Test
public void test_OK() {
new NonStrictExpectations() {
Whatever w;
{
w.method();
result = 1;
}
};
assertEquals(new Whatever().method(), 1); //passes
}
public static class Whatever {
public int method() {
return 0;
}
}
}