MOCKITO:迭代列表时如何获取模拟对象


@Mock
Object obj;
List<Obejct obj> objs;

当我通过objs迭代时,如何获得模拟对象OBJ?

代码:

@Mock
private Iterator<YourObject> iteratorMock;
//...
when(yourListMock.iterator()).thenReturn(iteratorMock);
when(iteratorMock.hasNext()).thenReturn(Boolean.TRUE, Boolean.TRUE,
    Boolean.TRUE, Boolean.FALSE);
when(iteratorMock.next()).thenReturn(yourMock1, yourMock1, yourMock2);

正如您在代码中看到的那样,嘲笑迭代器是一种非常方便的方式,可以返回第二个模拟,第三,e.t.c呼叫。

这样,您也很容易让第二个呼叫抛出异常,并且第三个呼叫再次起作用,能够测试将处理第二个呼叫的例外,例如,第三个结果仍将处理。<<<<<<<<<<<<<<<</p>

使用真实列表是一个选项,但我认为嘲笑更强大,并且代码更凝结到您实际上需要的特定测试所需的内容。

相关内容

  • 没有找到相关文章