Mockito When (). ThenReturn возвращает итератор - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь вернуть итератор, когда (). 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 () - это метод, который возвращает список клиентов. Я видел сообщение об ограничении Mockito о методах стекирования когда .thenReturn, но я не уверен, является ли это причиной, по которой это не удается? Любые советы будут очень признательны.

1 Ответ

1 голос
/ 08 апреля 2020

Если вы хотите сделать это таким образом, вам нужно также предоставить заглушку для возвращаемого значения findAll ().

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

Но если нет конкретной причины c, которую вы хотите заглушить только итератор, вы также можете вернуть список напрямую:

when(mockClientList1.findAll()).thenReturn(mockListClient);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...