Mockito Vérifier le livre de recettes
1. Vue d'ensemble
Ce livre de recettes illustre leshow to use Mockito verify dans divers cas d'utilisation.
Lesformat of the cookbook is example focused et pratiques - pas de détails et d'explications superflus nécessaires.
Nous allons être la mise en œuvre democking a simple list:
public class MyList extends AbstractList {
@Override
public String get(final int index) {
return null;
}
@Override
public int size() {
return 0;
}
}
Lectures complémentaires:
Exception moqueuse Lancer à l'aide de Mockito
Apprenez à configurer un appel de méthode pour générer une exception dans Mockito.
Fonctionnalités Java 8 de Mockito
Présentation de la prise en charge de Java 8 dans la structure Mockito, y compris les méthodes de flux et les interfaces par défaut
Se moquer des méthodes privées à l'aide de PowerMock
Découvrez comment utiliser PowerMock pour étendre la capacité de Mockito à se moquer et à vérifier les méthodes privées de la classe sous test.
2. Le livre de recettes
vérifier une invocation simple sur une simulation
List mockedList = mock(MyList.class);
mockedList.size();
verify(mockedList).size();
vérifier le nombre d'interactions avec la simulation
List mockedList = mock(MyList.class);
mockedList.size();
verify(mockedList, times(1)).size();
vérifier qu'aucune interaction avec l'ensemble de la maquette ne s'est produite
List mockedList = mock(MyList.class);
verifyZeroInteractions(mockedList);
vérifier qu'aucune interaction avec une méthode spécifique ne s'est produite
List mockedList = mock(MyList.class);
verify(mockedList, times(0)).size();
vérifiez qu'il n'y a pas d'interactions inattendues - cela devrait échouer:
List mockedList = mock(MyList.class);
mockedList.size();
mockedList.clear();
verify(mockedList).size();
verifyNoMoreInteractions(mockedList);
vérifier l'ordre des interactions
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();
vérifier qu'une interaction ne s'est pas produite
List mockedList = mock(MyList.class);
mockedList.size();
verify(mockedList, never()).clear();
vérifier qu'une interaction s'est produite au moins un certain nombre de fois
List mockedList = mock(MyList.class);
mockedList.clear();
mockedList.clear();
mockedList.clear();
verify(mockedList, atLeast(1)).clear();
verify(mockedList, atMost(10)).clear();
vérifier l'interaction avec l'argument exact
List mockedList = mock(MyList.class);
mockedList.add("test");
verify(mockedList).add("test");
vérifier l'interaction avec flexible / n'importe quel argument
List mockedList = mock(MyList.class);
mockedList.add("test");
verify(mockedList).add(anyString());
vérifier l'interaction à l'aide de la capture d'arguments
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. Conclusion
Ce format est une expérience - je publie certains de mes livres de recettes de développement interne sur un sujet donné - surGoogle Guava,Hamcrest etnow Mockito. L’objectif est d’avoir ces informations facilement accessibles en ligne et de les compléter chaque fois que je rencontre un nouvel exemple utile.
L'implémentation de tous ces exemples et extraits de codecan be found on GitHub - il s'agit d'un projet basé sur Maven, il devrait donc être facile à importer et à exécuter tel quel.