Introduction à Mockito§
Amélie Cordier
Département Informatique, IUT Lyon 1Ce travail est sous licence Creative Commons Attribution-ShareAlike 3.0 France.
Amélie Cordier
Département Informatique, IUT Lyon 1Ce travail est sous licence Creative Commons Attribution-ShareAlike 3.0 France.
http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html
http://gojko.net/2009/10/23/mockito-in-six-easy-examples/
Lorsque l'on écrit des tests, il nous manque parfois des éléments :
Principe de Mockito : simuler les objets "manquants" !
Mockito crée des simulacres à partir de n'importe quelle classe ou interface.
Mockito permet de controler le comportement des méthodes, c'est le stubbing
Simuler :
Vérifier, espionner :
La création des Mocks se fait soit en utilisant la méthode static mock(), soit en utilisant l'annotation @Mock
Dans le cas de l'annotation les objets doivent être initialisés avec MockitoAnnotations.initMocks(this)
import static org.mockito.Mockito.*;
List mockedList = mock(List.class);
Méthode when
Spécifier une condition et retourner la valeur pour cette condition
when(mockedList.get(0)).thenReturn("toto");
when(mockedList.get(anyInt())).thenReturn("toto");
Méthode verify
Mockito conserve une trace des appels aux méthodes des Mocks.
Warning
C'est du test de comportement : on s'assure que la méthode est appelée avec les bons paramètres, et non que le résultat est bon.
Méthode spy
Cette méthode permet d'encapsuler un objet qui existe vraiment.
Pour utiliser un ensemble de paramètres
Si on utilise des matchers, tous les arguments de la méthode doivent être des matchers !
Mockito ne gère pas :
L'objectif de l'exercice est de mettre en application les différentes fonctionnalités de Mockito pour simuler le comportement d'un connecteur de bases de donnée.
On considérera que la base contient des clients et des factures.
La correction de l'exercice se fera de façon interactive et collective, au tableau (projection).