Mockito Vérifier le livre de recettes

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.

Read more

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

Read more

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.

Read more

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.