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