Mockito Kochbuch überprüfen

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.