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. Android模拟器上的Mockito
- 7. Mockito模拟版本版本
- 8. 如何用Mockito模拟Thread.class?
- 9. 的Java模拟,从集合
- 10. 如何模拟结果集并使用Java中的Mockito填充它
- 11. 无法使用PowerMockito/Mockito模拟URL类
- 12. 可以使用Mockito来模拟org.jibx.runtime.BindingDirectory吗?
- 13. 在模拟的Java的Mockito继承的方法
- 14. 如何在Java中使用Mockito模拟新日期()
- 15. 如何通过模拟参数使用的Mockito和Java的
- 16. 如何在java中使用Mockito模拟AWS API
- 17. 在Java中使用mockito库模拟最终的类
- 18. 初始化模拟对象 - MockIto
- 19. 模拟的Mockito重载方法
- 20. 与注射用的Mockito和模拟
- 21. Mockito中的模拟谓词验证?
- 22. 模拟Mockito的回调和监听器
- 23. 模拟Mockito返回一个InvocationTargetException
- 24. Mockito模拟RESTful(JAX-RS)资源类
- 25. Mockito模拟方法内的对象
- 26. Mockito模拟SecurityManager抛出异常
- 27. 模拟请求/使用后的Mockito
- 28. mockito的模拟限制条件
- 29. 如何通过Mockito模拟大ArrayList?
- 30. 模拟Mockito 2的最终课程
呃...你在说什么?! – berry120
他问是否有办法模拟for循环中的一组行为。 – Nicolas