0
A
回答
1
代码:
@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调用返回不同的嘲弄一个非常方便的方式。
这样你也可以很容易地让第二次调用抛出异常,第三次调用再次工作,能够测试第二次调用的异常将被处理,例如第三次结果仍然会被处理。
使用真正的列表是一个选项,但我认为嘲笑更强大,代码更紧密地针对您实际需要的特定测试。
相关问题
- 1. 如何使用OCMock获取模拟对象列表
- 2. 在Mockito中注释模拟对象
- 3. 如何迭代匿名对象列表?
- 4. 你如何迭代对象列表?
- 5. 迭代获取ke /值对的对象列表
- 6. python迭代对象列表
- 7. 迭代对象列表
- 8. 如何在JSTL中的对象列表上迭代对象?
- 9. 如何从模板中的对象矢量获取迭代器?
- 10. 如何获取模板对象矢量上的迭代器?
- 11. 通过对象迭代对象列表
- 12. 调用mockito中的模拟对象
- 13. 初始化模拟对象 - MockIto
- 14. Mockito注入模拟间谍对象
- 15. Java测试与mockito:模拟类对象
- 16. Mockito模拟对象返回null
- 17. Mockito模拟方法内的对象
- 18. 使用Mockito模拟日期对象
- 19. Mockito - 方法内的模拟对象
- 20. 在Ibatis中迭代对象列表
- 21. Mockito在创建模拟对象时抛出NullPointer
- 22. 如何迭代对象列表并分配子对象?
- 23. 如何迭代对象模型的值?
- 24. 如何用Mockito模拟Thread.class?
- 25. 如何在NSEnumerator迭代中获取当前对象的索引?
- 26. 如何判断对象是否为Mockito模拟?
- 27. mockito如何创建模拟对象的实例
- 28. 如何使用Mockito/PowerMockito模拟Kotlin的对象?
- 29. 如何正确使用Mockito模拟对象
- 30. 迭代对象并获取名称
看看[这篇文章](http://whyjava.wordpress.com/2012/03/11/quick-tip-on-mockito-mocking-iterator/) – eebbesen
除非你有一个特定的原因,不要使用一个真正的'List'(例如它在一个小单元测试中必然很大),使用一个真正的'List'并添加模拟对象。 Java集合定义良好,经过良好测试,因此您不应该嘲笑它们。 –
该答案也非常有用https://stackoverflow.com/a/43067304/3800377 –