Test paramétré JUnit avec exemple utilisant @Parameters

Table des matières:

Anonim

Qu'est-ce que le test paramétré dans Junit?

Le test paramétré consiste à exécuter le même test encore et encore en utilisant des valeurs différentes. Il aide le développeur à gagner du temps en exécutant le même test qui ne diffère que par leurs entrées et les résultats attendus.

En utilisant le test paramétré, on peut mettre en place une méthode de test qui récupère les données d'une source de données.

Considérez un test simple pour additionner différents nombres. Le code peut ressembler à -

L'approche ci-dessus conduit à beaucoup de redondance.

Nous avons besoin d'une approche simple et. En utilisant le test paramétré, vous pouvez simplement ajouter une méthode pour saisir 10 entrées de données et votre test s'exécutera 10 fois automatiquement.

Étapes pour créer un test JUnit paramétré

Le code suivant montre un exemple de test paramétré. Il teste la méthode sum () de la classe Arithmétique:

Étape 1) Créez une classe. Dans cet exemple, nous allons entrer deux nombres en utilisant la méthode sum (int, int) qui retournera la somme des nombres donnés

Étape 2) Créez une classe de test paramétrée

Explication du code

  • Ligne de code 11: annotez votre classe de test à l'aide de @runWith (Parameterized.class).
  • Ligne de code 13: déclarant la variable «firstNumber» comme privée et tapez comme int.
  • Ligne de code 14: déclarant la variable 'secondNumber' comme privée et tapez comme int.
  • Ligne de code 15: déclarant la variable 'expectedResult' comme private et tapez comme int.
  • Ligne de code 16: Déclarer la variable «airthematic» comme privée et type comme Airthematic.

@RunWith (class_name.class): l' annotation @RunWith est utilisée pour spécifier son nom de classe runner. Si nous ne spécifions aucun type comme paramètre, le runtime choisira BlockJunit4ClassRunner par défaut.

Cette classe est responsable des tests à exécuter avec une nouvelle instance de test. Il est responsable de l'appel des méthodes de cycle de vie JUnit telles que la configuration (ressources associées) et le démontage (ressources de publication).

Pour paramétrer, vous devez annoter à l'aide de @RunWith et passer le .class requis pour être testé

Étape 3) Créez un constructeur qui stocke les données de test. Il stocke 3 variables

Étape 4) Créez une méthode statique qui génère et renvoie des données de test.

Code Line 32,33: Création d'un tableau bidimensionnel (fournissant des paramètres d'entrée pour l'ajout) En utilisant la méthode asList, nous convertissons les données en un type List. Depuis, le type de retour de l'entrée de méthode est collection.

Ligne de code 30: Utilisation de l' annotation @Parameters pour créer un ensemble de données d'entrée pour exécuter notre test.

La méthode statique identifiée par l'annotation @Parameters renvoie une Collection où chaque entrée de la Collection sera les données d'entrée pour une itération du test.

Considérez l'éléménent

{1,2,3}

Ici

firstNumber = 1

secondNumber = 2

attenduResult = 3

Ici, chaque élément du tableau sera passé au constructeur, un à la fois, car la classe est instanciée plusieurs fois.

Étape 5) Le code complet

Explication du code:

  • Ligne de code 25: Utilisation de l'annotation @Before pour configurer les ressources (Airthematic.class ici). L'annotation @Before est utilisée ici pour s'exécuter avant chaque cas de test. Il contient la condition préalable du test.
  • Ligne de code 36: Utilisation de l'annotation @Test pour créer notre test.
  • Ligne de code 39: Création d'une instruction assert pour vérifier si notre somme est équivalente à ce que nous attendions.

Étape 6) Créez une classe d'exécution de test pour exécuter un test paramétré:

Explication du code:

  • Code Line 8: Déclarer la méthode principale du test de classe qui exécutera notre test JUnit.
  • Ligne de code 9: Exécution de cas de test à l'aide de JunitCore.runclasses, il prendra le nom de la classe de test comme paramètre (dans notre exemple, nous utilisons Airthematic.class).
  • Ligne de code 11: Traitement du résultat à l'aide de la boucle for et impression du résultat ayant échoué.
  • Ligne de code 13: impression du résultat réussi.

Production:

Voici la sortie qui montre le test réussi sans trace d'échec comme indiqué ci-dessous:

Voir le résultat sur la console, qui montre l'addition de deux nombres: -

Résumé :

Le test paramétré permet au développeur d'exécuter le même test encore et encore en utilisant des valeurs différentes.

Annotations importantes à utiliser lors du paramétrage

  • @Courir avec
  • @Paramètres