7
A
回答
10
有几个选项:
- 投它
- 使用@Mock注释
例子:
Set<String> mySet = (Set<String>) mock(Set.class);
- 或 -
@Mock
private Set<String> mySet;
@Before
public void doBefore() throws Exception {
MockitoAnnotations.initMocks(this.getClass()); //this should create mocks for your objects...
}
5
虽然在尼古拉斯的回答中已经很清楚地解释了你如何模拟一个Set,但我认为你的问题也意味着你想在模拟循环过程中模拟这个set的行为。
为了实现这一目标,你首先需要知道你的代码只是语法糖,并扩展为:
for (Iterator iterator = mySet.iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
...
}
(有关见#1问题Which is more efficient, a for-each loop, or an iterator?细节)
这清楚地表明你需要嘲笑iterator()
方法。在你设置nikolas所描述的模拟模拟迭代器的方法是这样的:
when(mySet.iterator()).thenAnswer(new Answer<Iterator<String>>() {
@Override
public Iterator<String> answer(InvocationOnMock invocation) throws Throwable {
return Arrays.asList("A", "B").iterator();
}
});
相关问题
- 1. Java:模拟测试可能与Mockito
- 2. Java测试与mockito:模拟类对象
- 3. 在Java中使用Mockito模拟枚举
- 4. mockito模拟验证
- 5. 模拟用的Mockito
- 6. 模拟创作内Mockito模拟创建
- 7. Android模拟器上的Mockito
- 8. Mockito:模拟方法参数
- 9. 不能用Mockito模拟WebView
- 10. mockito和powermocks注入模拟
- 11. 如何用Mockito模拟Thread.class?
- 12. Mockito模拟版本版本
- 13. 的Java模拟,从集合
- 14. 如何模拟结果集并使用Java中的Mockito填充它
- 15. 用Mockito模拟子类中的父类
- 16. Junit/Mockito:选择运行模拟测试或集成测试
- 17. 用Mockito模拟创建线程Runnable
- 18. 无法使用PowerMockito/Mockito模拟URL类
- 19. 可以使用Mockito来模拟org.jibx.runtime.BindingDirectory吗?
- 20. 如何在java中使用Mockito模拟AWS API
- 21. 如何通过模拟参数使用的Mockito和Java的
- 22. 如何在Java中使用Mockito模拟新日期()
- 23. 如何使用Mockito Java模拟带有applicationType Json的HTTP POST
- 24. 在Java中使用mockito库模拟最终的类
- 25. 在模拟的Java的Mockito继承的方法
- 26. 使用Mockito/Power Mockito模拟私人方法
- 27. 在Scala中模拟案例类:Mockito
- 28. 如何使用Mockito进行AsyncTask模拟?
- 29. 调用的Mockito在模拟的方法
- 30. 如何使用Mockito模拟HttpServletRequest和HttpServletResponse
呃...你在说什么?! – berry120
他问是否有办法模拟for循环中的一组行为。 – Nicolas