Ich möchte eine verspottete Liste erstellen unten Code zu testen:erstellen verspottet Liste von Mockito
for (String history : list) {
//code here
}
Hier ist meine Implementierung:
public static List<String> createList(List<String> mockedList) {
List<String> list = mock(List.class);
Iterator<String> iterHistory = mock(Iterator.class);
OngoingStubbing<Boolean> osBoolean = when(iterHistory.hasNext());
OngoingStubbing<String> osHistory = when(iterHistory.next());
for (String history : mockedList) {
osBoolean = osBoolean.thenReturn(true);
osHistory = osHistory.thenReturn(history);
}
osBoolean = osBoolean.thenReturn(false);
when(list.iterator()).thenReturn(iterHistory);
return list;
}
Aber wenn der Test es Ausnahme in Zeile werfen laufen :
OngoingStubbing<DyActionHistory> osHistory = when(iterHistory.next());
für Details:
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at org.powermock.api.mockito.PowerMockito.when(PowerMockito.java:495)
E.g. thenReturn() may be missing.
Examples of correct stubbing:
when(mock.isOk()).thenReturn(true);
when(mock.isOk()).thenThrow(exception);
doThrow(exception).when(mock).someVoidMethod();
Hints:
1. missing thenReturn()
2. you are trying to stub a final method, you naughty developer!
Wie kann ich es beheben? Danke
möglich Duplikat [Mockito: eine Arraylist spöttisch, die in einer for-Schleife geschlungen werden] (http: // Stackoverflow. com/questions/18483176/Mockito-Mocking-ein-Arraylist-das-wird-in-einem-Loop-Looping) –