====== Ressources ====== * https://zestedesavoir.com/tutoriels/274/les-tests-unitaires-en-java/ * https://codegym.cc/fr/groups/posts/fr.191.tests-unitaires-en-java-avec-junit * https://www.machinet.net/tutorial-fr/java-unit-test-guide ===== A02 : Les tests (unitaires et d'intégration) ===== __Durée estimée__ : 4 heures ==== Objectif pédagogique ==== * Comprendre la différence entre tests unitaires, d’intégration, fonctionnels et de performance. * Savoir écrire et exécuter des tests avec un framework (**en Java avec JUnit** / en PHP avec PHPUnit). * Prendre conscience de l’importance de l’automatisation et des bonnes pratiques de validation. ===== ===== ==== Contexte fil rouge : Bibliothèque numérique ==== Vous travaillez pour une startup qui développe une application de gestion de bibliothèque. L’application doit permettre : * La gestion d’un catalogue de livres. * L’ajout et la suppression d’utilisateurs. * La gestion des emprunts (règle : un utilisateur ne peut pas emprunter plus de 3 livres). ===== ===== Vous allez développer et tester progressivement ce projet. - récupérer le projet sur gitea Dans Netbeans : - cloner le dépôt (https://delphine.thevenot@gitea.lyc-lecastel.fr/delphine.thevenot/2026TestsBibliotheque.git), - créer votre branche -votre prénom- et **ne travailler que sur votre branche** - commiter avec un commentaire précis sur votre branche uniquement - Étudier les classes fournies (Livre, Utilisateur). - exécuter les tests existants / être capable de les expliquer - Compléter les méthodes manquantes (ex. calcul du prix TTC d’un livre, ajout d’un livre dans la liste d’un utilisateur). ===== ===== ====== Les tests unitaires ====== - Écrire des **tests unitaires** avec JUnit pour : - vérifier les méthodes de la classe Utilisateur - Vérifier le calcul du prix TTC. - Vérifier que l’ajout d’un livre à un utilisateur fonctionne. - Ajouter au moins 2 tests supplémentaires par classe(y compris la classe Emprunt) pour couvrir des cas limites (ex. : emprunter plus de 3 livres, prix négatif, etc.). - Exécuter les tests et corriger les bugs si nécessaire. Travail validé par la présentation d'un test à la classe le **vendredi 26/09** ===== ===== ====== Les tests d'intégration ====== Vous aller vérifier que plusieurs composants du système fonctionnent correctement ensemble. Contrairement aux tests unitaires qui testent une seule classe/méthode, le test d’intégration vérifie la collaboration entre classes. - Tester qu’un utilisateur peut emprunter un livre uniquement si : * le livre n’est pas déjà emprunté * l’utilisateur a moins de 3 emprunts - Vérifier que l’état du livre(emprunté ou pas) et la liste des emprunts de l’utilisateur sont correctement mis à jour.