当mocked类包含返回Integer的方法时jmockit问题

时间:2015-03-03 03:23:35

标签: java jmockit

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

由于

1 个答案:

答案 0 :(得分:1)

JMockit Expectations API有一组用于参数匹配的any字段,包括anyInt。因此,期望块中出现的“anyInt”是该字段,不是同名的局部变量。

(如果您使用的是体面的Java IDE,它应该显示的颜色与用于局部变量的颜色不同,这使得容易发现错误。)