Cadre Mokito

En programmation informatique pour tester les applications Java, le framework Mokito est utilisé. Il s'agit d'un framework open source / gratuit disponible au téléchargement. C'est essentiellement un framework de test qui aide à la détection d'erreur. L'implémentation de Mokito en tant que cadre moqueur permettant de créer des objets 'Test Double', c'est-à-dire des objets fictifs, garantit que l'interaction avec les objets fictifs reste correcte.

Intro

Mokito est un framework pour tester les applications Java. Il simule le comportement d'objets complexes et facilite le développement des tests unitaires et de la détection des erreurs.

Mockito est OpenSource et est disponible à l'adresse suivante: //mockito.org/.

Mockito est basé sur le principe d'un objet fictif qui simule le comportement d'un autre objet.

La mise en œuvre des tests Mockito se fait en plusieurs étapes:

  • Création de l'objet maquette
  • Description du comportement attendu
  • Utiliser des moqueurs
  • Vérifier que l'interaction avec les simulacres est correcte

Exemple

 public class ClassA {public ClassA () {} public void fonc1 () {} public void fonc2 () {} public int fonc3 (int a, int b) {return a + b; }} public class ClassB {ClasseA ca; public ClassA getCa () {return ca; } public void setCa (ClassA ca) {this.ca = ca; } public ClassB () {ca = new ClassA (); } public void met1 () {ca.fonc1 (); ca.fonc1 (); System.out.println (environ 3 (5, 6)); } public void met2 () {ca.fonc2 (); }} 

Classe de tests unitaires ClassB:

 importer org.mockito.Mockito.mock statique; importer org.mockito.Mockito; public class Test {public static void main (String [] args) {ClassA ca = mock (ClassA.class); ClassB cb = new ClassB (); cb.setCa (ca); cb.met1 (); Mockito.verify (ca, Mockito.times (2)). Fonc1 (); Mockito.verify (ca, Mockito.times (1)). Fonc3 (Mockito.anyInt (), Mockito.anyInt ()); }} 

Analyse de code:

ClassA ca = mock (ClassA.class);

=> Il crée un AC, une classe fictive ClassA.

cb.setCa (ca);

=> Cela affecte l'objet ca à l'objet cb.

cb.met1 ();

=> Appelle l'objet avec la méthode cb met1 ().

Mockito.verify (environ Mockito.es (2)). Func1 ();

=> Vérifie que la méthode de mock ca func1 est appelée deux fois.

Mockito.verify (ca, Mockito.times (1)). Fonc3 (Mockito.anyInt (), Mockito.anyInt ());

=> Vérifie que la méthode de mock func3 n'est appelée qu'une fois par deux paramètres entiers.

Lorsque la vérification échoue, une exception est générée.

Exemple:

Mockito.verify (ca, Mockito.atLeast (1)). Fonc2 ();

=> Cette ligne génère l'exception suivante:

Exception dans le fil "main" Recherché mais non invoqué:

 classA.fonc2 (); -> à Test01.main (Test01.java:16) 

==> Cela indique que la méthode func2 () mock le AC n'est pas connue.

Vous pouvez également modifier les résultats renvoyés par une fonction.

 System.out.println ("Le résultat de ca.fonc (3, 3) est" + ca.fonc3 (3, 3)); Mockito.when (ca.fonc3 (Mockito.anyInt (), Mockito.anyInt ())). ThenReturn (Integer.valueOf (5)); System.out.println ("Le résultat de ca.fonc (3, 3) est" + ca.fonc3 (3, 3)); 

Analyse de code:

 Mockito.when (ca.fonc3 (Mockito.anyInt (), Mockito.anyInt ())). thenReturn (Integer.valueOf (5)); 

# La valeur de retour de la fonction fonc3 était de 0 .

Nous le forçons à 5 .

Ceci est particulièrement utile lorsque vous utilisez des fonctions contenant plusieurs fonctionnalités (conditions, boucles, etc.) et que vous souhaitez vérifier le comportement de toute fonction. Nous devons donc configurer les modèles utilisés dans cette fonction pour qu’elle réponde à toutes ces conditions.

Un conseil de wjaouadi.

Article Précédent Article Suivant

Les Meilleurs Conseils