Mockito Verify Kochbuch
1. Überblick
Dieses Kochbuch zeigthow to use Mockito verify in einer Vielzahl von Anwendungsfällen.
Dieformat of the cookbook is example focused und praktisch - keine überflüssigen Details und Erklärungen erforderlich.
Wir werdenmocking a simple listimplementieren:
public class MyList extends AbstractList {
@Override
public String get(final int index) {
return null;
}
@Override
public int size() {
return 0;
}
}
Weitere Lektüre:
Verspottende Ausnahme Werfen mit Mockito
Erfahren Sie, wie Sie einen Methodenaufruf zum Auslösen einer Ausnahme in Mockito konfigurieren.
Java 8-Funktionen von Mockito
Überblick über die Java 8-Unterstützung in Mockito Framework, einschließlich Streams und Standardschnittstellenmethoden
Verspotten von privaten Methoden mit PowerMock
Erfahren Sie, wie PowerMock verwendet werden kann, um die Fähigkeit von Mockito zum Verspotten und Überprüfen privater Methoden in der getesteten Klasse zu erweitern.
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 - zuGoogle Guava,Hamcrest undnow Mockito. Das 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 Codefragmentecan be found on GitHub - dies ist ein Maven-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.