junit tutorial beginners what is junit testing
Ce didacticiel JUnit pour les débutants explique ce que sont les tests unitaires, la couverture des tests et le cadre de tests JUnit, ainsi que des exemples de cas de tests JUnit:
Cette série JUnit a été préparée pour se concentrer sur nos publics qui sont des débutants absolus ainsi que ceux qui ont une bonne connaissance de Java ou JUnit avec un vif intérêt pour l'apprentissage de JUnit.
La série dans son ensemble a été présentée de manière à ce que vous puissiez interpréter la différence entre JUnit 4 et Junit 5.
Commençons à explorer JUnit maintenant !!
Ce que vous apprendrez:
youtube en mp3 plus de 30 minutes
Liste des didacticiels de cette série JUnit
Tutoriel n ° 1: Tutoriel JUnit pour les débutants - Qu'est-ce que le test JUnit? (Ce tutoriel)
Tutoriel n ° 2: Téléchargez, installez et configurez JUnit dans Eclipse
Tutoriel n ° 3: Tests JUnit: Comment écrire des cas de test JUnit avec des exemples
Tutoriel n ° 4: Qu'est-ce qu'un montage de test JUnit: Tutoriel avec des exemples JUnit 4
Tutoriel n ° 5: Plusieurs façons d'exécuter des tests JUnit
Tutoriel n ° 6: Liste des annotations JUnit: JUnit 4 vs JUnit 5
Tutoriel n ° 7: JUnit Ignore Test Case: JUnit 4 @Ignore Vs JUnit 5 @Disabled
Tutoriel n ° 8: Suite de tests JUnit et cas de tests de filtrage: JUnit 4 vs JUnit 5
Tutoriel n ° 9: Ordre d'exécution des tests JUnit: Ordre des tests JUnit 4 vs JUnit 5
Tutoriel n ° 10: Comment utiliser l'annotation JUnit 5 @RepeatedTest avec des exemples
Tutoriel n ° 11: Classe imbriquée JUnit 5: Tutoriel @Nested avec exemples
Tutoriel n ° 12: Nom d'affichage personnalisé de JUnit 5 et exécution de test conditionnel
Tutoriel n ° 13: JUnit Vs TestNG - Quelles sont les différences
Tutoriel JUnit
Dans une approche typique de développement piloté par les tests (TDD), les développeurs se concentrent sur les tests unitaires de chaque morceau de code qu'ils développent. Mieux est le test d'un produit, meilleure est sa qualité. Nous savons tous que les tests doivent aller de pair avec chaque phase du cycle de vie du développement logiciel.
De l'exigence et de l'analyse à la conception et au développement jusqu'à la maintenance, chaque phase doit être associée à une phase de test appropriée. Les tests unitaires après le développement sont ce qui est conseillé pour construire une application robuste et pour avoir un code optimisé en place.
Qu'est-ce que le test unitaire?
Le test unitaire est le test d'une petite logique ou d'un code pour vérifier que la sortie du code est comme prévu sur l'entrée d'une donnée spécifique et / ou sur la satisfaction de certaines conditions. Habituellement, les tests unitaires sont censés être indépendants des autres tests.
Les tests unitaires ne sont pas réalisables pour tester des interfaces complexes avec une autre application ou des services tiers / externes. Un test unitaire ne cible qu'une petite unité de code qui pourrait être juste une méthode ou une classe.
Il aide le développeur à découvrir les problèmes dans la logique actuelle et les échecs de régression dus au changement actuel. En outre, il donne également un aperçu de la façon dont le code actuel pourrait avoir un impact sur la mise en œuvre future.
Couverture de test
Le pourcentage de code testé par les tests unitaires est appelé Couverture de test .
L'objectif est d'avoir une meilleure couverture de test du code qui, à l'avenir, continue de s'ajouter à la suite de tests de régression et contribue à augmenter l'exécution et la vérification automatisées des tests, réduisant ainsi l'effort manuel impliqué dans les tests de régression.
L'exécution de tests permet d'identifier automatiquement les problèmes de régression logicielle introduits par les modifications du code actuel. Avoir une couverture de test élevée de votre code vous permet de continuer à développer des fonctionnalités sans avoir à effectuer beaucoup de tests manuels.
Beaucoup viennent avec une question quant à quelle couverture de test est essentielle . La réponse à cette question est qu'il n'y a pas de règle absolue sur le degré de couverture des tests; tout cela est critique. Le jugement s'améliore avec l'expérience du flux de travail de l'application et la connaissance historique des défauts constatés jusqu'à présent.
Des tests efficaces ne doivent pas nécessairement signifier avoir une couverture de test à 100% ou incorporer des tests d'automatisation et / ou des tests unitaires pour chaque branche ou couverture de chemin.
largeur de la première recherche c ++
Certaines vérifications insignifiantes comme un message d'erreur de validation pour un champ obligatoire laissé vide qui n'a pas de défauts depuis des années ne doivent pas être incluses dans la suite de régression.
Test manuel vs test automatisé
Les tests unitaires peuvent être effectués via deux approches:
- Test manuel
- Test automatisé
Dans les deux approches, le flux de travail reste courant:
- Créer un cas de test
- L'examen
- Retravailler si des corrections sont nécessaires
- Exécuter le scénario de test
- Analyser les résultats des tests
Les tests automatisés sont préférés aux tests manuels pour les raisons ci-dessous:
Test manuel | Test automatisé |
---|---|
Lorsqu'un cas de test est exécuté manuellement sans intervention d'un outil, on parle de test manuel. | Lorsqu'un cas de test est exécuté à l'aide d'un outil sans grande intervention manuelle, on parle de test automatisé. |
Des efforts manuels répétitifs sont inclus. | Des efforts manuels répétitifs peuvent être évités. |
Les efforts humains dans les tests manuels peuvent être erronés et prendre du temps. | Les tests d'automatisation sont plus rapides et sans erreur par rapport aux efforts manuels. |
Les ressources de test requises sont plus importantes pour exécuter chaque cas de test manuellement, ce qui ajoute à l'investissement dans les ressources. | Moins de testeurs sont nécessaires pour exécuter des tests automatisés à l'aide du ou des outils automatisés désignés, d'où moins d'investissements dans les ressources de test, ajoutant ainsi à la rentabilité. |
Les tests manuels doivent être limités à une petite couverture de tests compte tenu des restrictions de calendrier. Par conséquent, il existe un risque de sauter de nombreux scénarios de test, ce qui entraîne également un risque de fuite de défaut. | De nombreux scénarios de test différents peuvent être automatisés et peuvent être exécutés plusieurs fois même en cas de crise de temps et de ressources, conduisant ainsi à une meilleure couverture des tests et à une meilleure qualité du livrable. |
Cadre de test unitaire
Nous pouvons avoir la question suivante de savoir à quoi ressemble un cas de test d'unité d'automatisation typique et le cadre qu'il suit. Les développeurs utilisent le Cadre de test unitaire pour créer des cas de test unitaires automatisés.
- Afin de vérifier si le code fonctionne logiquement comme prévu, un cas de test avec un point de contrôle ou un critère de vérification spécifique est créé.
- Lorsque le cas de test est exécuté, le critère / la condition réussit ou échoue.
- Un journal est généré selon le flux de travail du scénario de test.
- Le framework rapportera un résultat résumé sur les cas de test réussis et ceux qui ont échoué.
- Selon la gravité de l'échec, le cas de test peut ne pas continuer et peut arrêter l'exécution ultérieure.
- Il peut y avoir certaines défaillances graves et faibles qui sont signalées dans le journal, mais cela ne montre pas d'arrêt brutal mais continue sans bloquer les étapes de test suivantes.
Qu'est-ce que JUnit?
JUnit est un framework open-source utilisé pour écrire et exécuter des tests unitaires dans le langage de programmation Java. C'est l'un des frameworks de tests unitaires les plus connus.
L'image ci-dessous montre les différents outils de test d'unités d'automatisation bien connus.
Vous trouverez ci-dessous les attributs avec lesquels JUnit est fourni:
- Il existe une énorme liste d'annotations pour identifier, exécuter et prendre en charge de nombreuses fonctionnalités des méthodes de test.
- Il existe des affirmations pour vérifier les résultats attendus.
- Il fournit Test Runner pour exécuter les tests.
- JUnit fournit un modèle intégré de base afin que vous puissiez écrire de petits cas de test simples en un rien de temps.
- Les tests JUnit vous aident à écrire des modules indépendants, améliorant ainsi la couverture du test et la qualité de l'application.
- Il permet non seulement de créer et d'exécuter facilement des tests, mais présente également au développeur un rapport explicite clair et clair qui élimine le besoin pour le développeur de rechercher dans le chemin des rapports et des résultats de test.
- Jusqu'à ce que l'exécution du test se déroule sans heurts, vous pouvez vous détendre en regardant la barre de progression du test de couleur verte qui s'affiche pendant que l'exécution est en cours, alors qu'elle vous alerte en «rouge» dès que le test échoue à un point de contrôle de vérification.
- Des suites de tests peuvent être créées afin de mettre ensemble une séquence ou un ensemble connexe de cas de test.
Exemples de cas de test JUnit
Vous trouverez ci-dessous les deux exemples d'un programme Hello World très basique pour comprendre à quoi ressemble une classe de test JUnit ou à quel point elle est différente par rapport à un fichier de classe Java habituel.
Exemple 1:
Voici un cas de test JUnit HelloWorldJUnit.java qui vérifie que la chaîne «Hello world» correspond à la chaîne «hello world» qui échoue à l'exécution, car la correspondance est sensible à la casse. Par conséquent, les deux chaînes ne correspondent pas et le test échoue .
Le code pour HelloWorldJUnit.java
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
Exemple n ° 2:
Ici, nous verrons comment un Java fichier de classe interagit avec un JUnit cas de test. Nous créons un Java fichier de classe HelloWorld_Java.java avec un constructeur qui nous permet de passer une valeur String et une méthode getText () pour récupérer la valeur string.
JUnit Classe d'essai HelloWorldJUnit.java est créé de telle sorte que l'objet de classe pour HelloWorld_Java soit créé et que la valeur de chaîne réelle soit transmise à l'objet. L'assertEquals () de JUnit vérifie si les valeurs de chaîne attendues et réelles correspondent.
Le code pour HelloWorld_Java.java
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
Le code pour HelloWorldJUnit.java
package demo.tests; public class HelloWorldJUnit{ private String s; public HelloWorld_Java(String s) { @Test public void test() { HelloWorld_Java hw=new HelloWorld_Java('Hello World'); assertEquals(hw.getText(),'Hello World'); } }
Le résultat ressemble à ci-dessous où nous voyons les deux chaînes correspondent. Par conséquent, le test JUnit est passé.
Conclusion
Lorsqu'il s'agit de vous fournir un aperçu rapide de ce qu'est JUnit et de ce qu'il fait, JUnit est un framework magnifiquement conçu qui vous permet de créer et d'exécuter des tests unitaires de manière automatisée.
quelles sont les phases sdlc?
C'est un outil open source mais sans tracas. Que ce soit la création de cas de test ou l'exécution d'un cas de test ou la création de rapports après l'exécution ou la maintenance des tests, JUnit est élégant dans tous ses aspects. Oui, cela peut aussi échouer avec élégance; et nous verrons comment cela se passe dans notre prochain tutoriel au fur et à mesure que nous avancerons.
A propos de l'auteur: Ce tutoriel a été écrit parShobhaD. Elle travaille en tant que chef de projet et possède plus de 9 ans d'expérience dans les tests manuels, automatisés et API.
Continuons à éclairer plus profondément chaque aspect de JUNIT ici-dessus.
lecture recommandée
- Tutoriel de réflexion Java avec des exemples
- Tutoriel sur la méthode Java String contains () avec des exemples
- Jagged Array In Java - Tutoriel avec des exemples
- Tutoriels Eclipse détaillés pour les débutants
- Tutoriel Java SWING: Conteneur, composants et gestion des événements
- Opérateur ternaire en Java - Tutoriel avec des exemples
- 20+ Tutoriel MongoDB pour les débutants: Cours MongoDB gratuit
- Tutoriel Spock: Test avec Spock et Groovy