JUnit - 6.3 Tester avec des données CSV grâce à @CsvFileSource
Quand les données de test sont nombreuses, les écrire directement dans le code devient vite fastidieux. Un fichier CSV permet de les regrouper à part. Cette leçon montre comment utiliser ces données dans un test paramétré JUnit.
Préparer le fichier CSV
Commencez par créer un fichier CSV qui contient les données du test. La vidéo prend l'exemple d'une méthode qui calcule le produit de deux nombres. Chaque ligne du fichier contient alors les valeurs à tester.
Écrire le test paramétré
Annotez la méthode de test avec @ParameterizedTest. Placez ensuite @CsvFileSource au-dessus de la méthode, et indiquez le nom du fichier CSV à utiliser. JUnit lit alors ce fichier au moment de l'exécution.
Le nombre de paramètres dépend du nombre de colonnes du fichier. Si le fichier a trois colonnes, la méthode doit déclarer trois paramètres pour recevoir les valeurs de chaque colonne.
- Annoter la méthode avec @ParameterizedTest.
- Ajouter @CsvFileSource avec le nom du fichier CSV.
- Déclarer un paramètre par colonne du fichier.
- Vérifier que le type de chaque paramètre correspond à sa colonne.
Écrire la logique du test
Une fois les paramètres définis, la logique du test utilise ces valeurs. Par exemple, on fournit deux nombres en entrée, puis on vérifie que le résultat correspond à la valeur attendue.
Si toutes les lignes réussissent, la méthode fonctionne correctement pour ces jeux de données.
En résumé
Un fichier CSV centralise les données de test hors du code. @CsvFileSource transmet ces données à une méthode @ParameterizedTest, ligne par ligne. Chaque colonne correspond à un paramètre, avec le bon type. Le test s'exécute ainsi une fois par ligne du fichier.
Points clés
- Un fichier CSV regroupe les données de test hors du code.
- @CsvFileSource indique à JUnit quel fichier CSV utiliser.
- Le nombre de paramètres correspond au nombre de colonnes.
- Chaque paramètre doit avoir le type de données de sa colonne.
- Le test s'exécute une fois pour chaque ligne du fichier.
Questions fréquentes
Pourquoi utiliser un fichier CSV pour les données de test ?
Le fichier sépare les données du code. On peut ajouter ou modifier un jeu de test sans changer la méthode de test.
Combien de paramètres faut-il déclarer ?
Un paramètre par colonne du fichier CSV. Si le fichier a trois colonnes, la méthode déclare trois paramètres.
Que se passe-t-il si le type ne correspond pas ?
Chaque paramètre doit correspondre au type de sa colonne. Sinon, JUnit ne peut pas transmettre la valeur correctement et le test échoue.