java - 当模拟类包含返回 Integer 的方法时 jmockit 问题

标签 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

谢谢

最佳答案

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

(如果您使用的是不错的 Java IDE,它应该以与局部变量所用颜色不同的颜色显示字段,从而使错误很容易被发现。)

关于java - 当模拟类包含返回 Integer 的方法时 jmockit 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28823527/

相关文章:

java - 使用 tweet4j 按位置获取推文

jmockit - 在 JMockit 中,如何指定一系列调用的时间?

java - JMockit 从命令行生成覆盖率报告

java - 在多个符号上拆分java中的字符串

Java 输入需要两次

java - 如何在 JBPM 6 中获取和设置流程的局部变量列表?

java - jmockit似乎没有找到我的非严格期望,产生的结果为空

java - JMockit mock 没有被破坏

java - 使用 JRE 1.4 模拟当前时间

java - UiBinder GWT 中的属性文件提供的常量值