簡體   English   中英

Mockito When().thenReturn 返回一個迭代器

[英]Mockito When().thenReturn returning an Iterator

我試圖從 when().theReturn 返回一個迭代器,但我不斷收到此錯誤:

org.mockito.exceptions.misusing.WrongTypeOfReturnValue: 
Itr cannot be returned by findAll()
findAll() should return List

這就是我想要做的:

List<Client> iterList = mockClientList1.findAll();
final Iterator<Client> iter = newMockListClient.iterator();
when(iterList.iterator()).thenReturn(iter);

mockClientList1 是一個 object ClientList 並且 findAll() 是一個返回 Client 列表的方法。 我看到了一篇關於 Mockito 關於 when.thenReturn 上的堆疊方法的限制的帖子,但我不確定這是否是失敗的原因? 任何提示將不勝感激。

如果你想這樣做,你還需要為 findAll() 的返回值提供一個存根。

List<Client> mockList = mock(List.class)
when(mockClientList1.findAll()).thenReturn(mockList);
final Iterator<Client> iter = newMockListClient.iterator();
when(mockList.iterator()).thenReturn(iter);

但除非有特定原因您只想存根迭代器,否則您也可以直接返回列表:

when(mockClientList1.findAll()).thenReturn(mockListClient);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM