1. Übersicht
Dieses Kochbuch zeigt, wie Mockito Verify in verschiedenen Anwendungsfällen verwendet wird.
Das Format des Kochbuchs ist beispielhaft und praktisch - es sind keine überflüssigen Details und Erklärungen erforderlich.
Wir werden uns über eine einfache Listenimplementierung lustig machen:
public class MyList extends AbstractList { @Override public String get(final int index) { return null; } @Override public int size() { return 0; } }
2. Das Kochbuch
Überprüfen Sie den einfachen Aufruf auf Mock
List mockedList = mock(MyList.class); mockedList.size(); verify(mockedList).size();
Überprüfen Sie die Anzahl der Interaktionen mit Mock
List mockedList = mock(MyList.class); mockedList.size(); verify(mockedList, times(1)).size();
Stellen Sie sicher, dass keine Interaktion mit dem gesamten Mock stattgefunden hat
List mockedList = mock(MyList.class); verifyZeroInteractions(mockedList);
Stellen Sie sicher, dass keine Interaktion mit einer bestimmten Methode aufgetreten ist
List mockedList = mock(MyList.class); verify(mockedList, times(0)).size();
Stellen Sie sicher, dass keine unerwarteten Interaktionen vorliegen. Dies sollte fehlschlagen:
List mockedList = mock(MyList.class); mockedList.size(); mockedList.clear(); verify(mockedList).size(); verifyNoMoreInteractions(mockedList);
Überprüfen Sie die Reihenfolge der Interaktionen
List mockedList = mock(MyList.class); mockedList.size(); mockedList.add("a parameter"); mockedList.clear(); InOrder inOrder = Mockito.inOrder(mockedList); inOrder.verify(mockedList).size(); inOrder.verify(mockedList).add("a parameter"); inOrder.verify(mockedList).clear();
Stellen Sie sicher, dass keine Interaktion stattgefunden hat
List mockedList = mock(MyList.class); mockedList.size(); verify(mockedList, never()).clear();
Stellen Sie sicher, dass mindestens eine bestimmte Anzahl von Interaktionen stattgefunden hat
List mockedList = mock(MyList.class); mockedList.clear(); mockedList.clear(); mockedList.clear(); verify(mockedList, atLeast(1)).clear(); verify(mockedList, atMost(10)).clear();
Überprüfen Sie die Interaktion mit dem genauen Argument
List mockedList = mock(MyList.class); mockedList.add("test"); verify(mockedList).add("test");
Überprüfen Sie die Interaktion mit flexiblen / beliebigen Argumenten
List mockedList = mock(MyList.class); mockedList.add("test"); verify(mockedList).add(anyString());
Überprüfen Sie die Interaktion mithilfe der Argumenterfassung
List mockedList = mock(MyList.class); mockedList.addAll(Lists. newArrayList("someElement")); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(List.class); verify(mockedList).addAll(argumentCaptor.capture()); List capturedArgument = argumentCaptor.
getValue(); assertThat(capturedArgument, hasItem("someElement"));
3. Fazit
Dieses Format ist ein Experiment - ich veröffentliche einige meiner internen Entwicklungskochbücher zu einem bestimmten Thema - auf Google Guava, Hamcrest und jetzt Mockito . Ziel ist es, diese Informationen online verfügbar zu machen - und sie zu ergänzen, wenn ich auf ein neues nützliches Beispiel stoße.
Die Implementierung all dieser Beispiele und Codefragmente finden Sie auf GitHub - dies ist ein Maven-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.