gpt4 book ai didi

java - Mockito When().thenReturn 返回一个迭代器

转载 作者:行者123 更新时间:2023-12-02 08:45:37 26 4
gpt4 key购买 nike

我试图从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是一个ClientList对象,findAll()是一个返回Client列表的方法。我看到一篇关于 Mockito 关于 when.thenReturn 上堆叠方法的限制的帖子,但我不确定这是否是失败的原因?任何提示将非常感激。

最佳答案

如果你想这样做,你还需要为 findAll() 的返回值提供一个 stub 。

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

但是除非有特定原因您只想仅 stub 迭代器,否则您也可以直接返回列表:

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

关于java - Mockito When().thenReturn 返回一个迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61102016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com