JMockit
未将Integer
设置作为预期的返回值返回。
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
由于
答案 0 :(得分:1)
JMockit Expectations API有一组用于参数匹配的any
字段,包括anyInt
。因此,期望块中出现的“anyInt
”是该字段,不是同名的局部变量。
(如果您使用的是体面的Java IDE,它应该显示的颜色与用于局部变量的颜色不同,这使得容易发现错误。)