Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| d5:a02 [2025/09/24 11:13] – [Les tests d'intégration] dthevenot | d5:a02 [2025/10/03 11:40] (Version actuelle) – [Evolution du contexte : nouveaux tests unitaires] dthevenot | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== | + | ====== |
| + | __Durée estimée__ : 4 heures | ||
| + | < | ||
| + | ===== Ressources | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| Ligne 11: | Ligne 14: | ||
| - **Assert** : La vérification des résultats obtenus par le test. | - **Assert** : La vérification des résultats obtenus par le test. | ||
| Le sous-système (l’ensemble des objets) éprouvé par le test est parfois appelé SUT (System Under Test). | Le sous-système (l’ensemble des objets) éprouvé par le test est parfois appelé SUT (System Under Test). | ||
| - | ===== A02 : Les tests (unitaires et d' | + | |
| - | __Durée estimée__ : 4 heures | + | ===== Objectif pédagogique |
| - | ==== Objectif pédagogique ==== | + | |
| * Comprendre la différence entre tests unitaires, d’intégration, | * Comprendre la différence entre tests unitaires, d’intégration, | ||
| * Savoir écrire et exécuter des tests avec un framework (**en Java avec JUnit** / en PHP avec PHPUnit). | * 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. | * Prendre conscience de l’importance de l’automatisation et des bonnes pratiques de validation. | ||
| ===== ===== | ===== ===== | ||
| - | ==== Contexte | + | ===== Contexte : Bibliothèque numérique |
| Vous travaillez pour une startup qui développe une application de gestion de bibliothèque. | Vous travaillez pour une startup qui développe une application de gestion de bibliothèque. | ||
| L’application doit permettre : | L’application doit permettre : | ||
| Ligne 32: | Ligne 34: | ||
| * récupérer le projet sur gitea | * récupérer le projet sur gitea | ||
| < | < | ||
| - | - cloner | + | - cloner |
| - créer votre branche -votre prénom- et **ne travailler que sur votre branche** | - créer votre branche -votre prénom- et **ne travailler que sur votre branche** | ||
| - | - commiter avec un commentaire précis sur votre branche uniquement | + | - commiter avec un commentaire précis |
| </ | </ | ||
| < | < | ||
| - | - Étudier la classe Livre et les tests unitaires | + | - Étudier la classe Livre et la classe de tests unitaires |
| - | - Identifier les 3 parties AAA | + | - Identifier les 3 parties AAA de chaque test |
| - Que vérifient les tests ? | - Que vérifient les tests ? | ||
| - Ajouter un message clair en cas d' | - Ajouter un message clair en cas d' | ||
| Ligne 46: | Ligne 48: | ||
| | | ||
| ===== ===== | ===== ===== | ||
| - | ==== Evolution du contexte : nouveaux tests unitaires ==== | + | ===== Evolution du contexte : nouveaux tests unitaires |
| Vous allez mettre en place de nouveaux tests pour assurer : | Vous allez mettre en place de nouveaux tests pour assurer : | ||
| * la validation des champs (titre, auteur, ISBN), | * la validation des champs (titre, auteur, ISBN), | ||
| * la robustesse face aux entrées malveillantes (XSS, caractères interdits), | * la robustesse face aux entrées malveillantes (XSS, caractères interdits), | ||
| - | * l’intégrité globale des données | + | * l’intégrité globale des données |
| + | |||
| < | < | ||
| Chaque étudiant va implémenter une nouvelle règle de validation : | Chaque étudiant va implémenter une nouvelle règle de validation : | ||
| - | - ISBN : doit avoir 13 chiffres (pas de lettres, pas de caractères spéciaux), exemple invalide : " | + | |
| - | - Titre : ne doit pas contenir < | + | |
| - | - Auteur : non vide, pas de caractères spéciaux suspects, de chiffres. | + | |
| - | - Longueur maximale du titre (ex. 200 caractères - l' | + | |
| + | - (// | ||
| + | |||
| + | **Consignes** : Pour chaque règle : | ||
| + | - Compléter la méthode prévue dans la classe de contrôle LivreValide | ||
| + | - Créer la méthode correspondante dans la classe LivreValideTest avec ses tests unitaire JUnit. | ||
| - | Consignes : Chaque règle = une nouvelle méthode dans BookValidator + son test unitaire JUnit. | ||
| - | < | ||
| ===== ===== | ===== ===== | ||