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
谢谢
最佳答案
JMockit Expectations API 有一组用于参数匹配的 any
字段,包括 anyInt
。因此,出现在期望 block 内的“anyInt
”就是该字段,而不是同名的局部变量。
(如果您使用的是不错的 Java IDE,它应该以与局部变量所用颜色不同的颜色显示字段,从而使错误很容易被发现。)
关于java - 当模拟类包含返回 Integer 的方法时 jmockit 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28823527/