模拟时的 jmockit 问题 class 包含返回 Integer 的方法
jmockit issue when mocked class contains method returning Integer
JMockit
不是 return 将 Integer
设置为期望中的 return 值。
public interface Foo {
Integer getInt();
}
@Test
public void test(@Mocked final Foo foo) {
final Integer anyInt = 3;
new Expectations() {{
foo.getInt(); result = anyInt;
}};
assertThat(foo.getInt(), equalTo(anyInt));
}
失败并显示消息:
java.lang.AssertionError:
Expected: <3>
but: was <0>
知道为什么吗?
JMockit 1.14
谢谢
JMockit Expectations API 有一组 any
字段用于参数匹配,包括 anyInt
。因此,期望块内出现的“anyInt
”是该字段,不是同名局部变量。
(如果您使用的是体面的 Java IDE,它应该显示与用于局部变量的颜色不同的字段,以便于发现错误。)
JMockit
不是 return 将 Integer
设置为期望中的 return 值。
public interface Foo {
Integer getInt();
}
@Test
public void test(@Mocked final Foo foo) {
final Integer anyInt = 3;
new Expectations() {{
foo.getInt(); result = anyInt;
}};
assertThat(foo.getInt(), equalTo(anyInt));
}
失败并显示消息:
java.lang.AssertionError:
Expected: <3>
but: was <0>
知道为什么吗?
JMockit 1.14
谢谢
JMockit Expectations API 有一组 any
字段用于参数匹配,包括 anyInt
。因此,期望块内出现的“anyInt
”是该字段,不是同名局部变量。
(如果您使用的是体面的 Java IDE,它应该显示与用于局部变量的颜色不同的字段,以便于发现错误。)