🧪 Labo 13.2A – Pratique de tests unitaires
🎯 Objectif
- générer un projet de tests unitaires ;
- définir des classes et des méthodes de tests ;
- utiliser les principales méthodes d’assertion ;
- exécuter des tests unitaires ;
- interpréter les résultats des tests ;
- détecter des erreurs dans un programme ;
- corriger un programme à l’aide des tests unitaires.
Le projet du laboratoire 13.2 est disponible ici 👉 Laboratoire13_2
Exercice 1 – Écrire des tests unitaires pour compléter la classe Chat
🛠️ Instructions
La classe Chat représente un chat avec :
- un matricule ;
- un nom ;
- un âge.
La classe vous sera fournie, mais certaines parties du code seront volontairement incomplètes ou erronées :
- le constructeur pourrait être incomplet ;
- certaines validations pourraient être absentes ;
- certaines propriétés pourraient être mal implémentées.
Votre travail consiste à appliquer une approche de développement dirigé par les tests (DDT / TDD).
Pour chaque fonctionnalité de la classe Chat, vous devez :
- écrire les tests unitaires correspondant au comportement attendu ;
- exécuter les tests ;
- identifier les erreurs ou les fonctionnalités manquantes ;
- compléter ou corriger la classe
Chat; - exécuter de nouveau les tests ;
- vérifier que tous les tests réussissent.
Description fonctionnelle
La classe Chat permet de représenter un chat à l’aide de trois informations :
Matricule: le matricule du chat ;Nom: le nom du chat ;Age: l’âge du chat en années.
Constructeur avec paramètres
Le constructeur doit permettre d’initialiser un chat avec un matricule, un nom et un âge.
Exemple
Chat chat = new Chat("A123", "Minou", 3);
Comportement attendu
Après la création de cette instance :
Matriculedoit valoir"A123";Nomdoit valoir"Minou";Agedoit valoir3.
Propriété Matricule
La propriété Matricule permet d’obtenir ou de modifier le matricule du chat.
Domaine de validité
Le matricule :
- ne doit pas être
null; - doit contenir exactement
4caractères.
Validations requises
Une exception de type ArgumentNullException doit être levée si le matricule est null.
Une exception de type ArgumentException doit être levée si le matricule ne contient pas exactement 4 caractères.
Exemples de valeurs invalides
null
""
"A1"
"ABCDE"
Propriété Nom
La propriété Nom permet d’obtenir ou de modifier le nom du chat.
Domaine de validité
Le nom du chat :
- ne doit pas être
null; - doit contenir au moins
3caractères après avoir retiré les espaces au début et à la fin.
Validations requises
Une exception de type ArgumentNullException doit être levée si le nom est null.
Une exception de type ArgumentException doit être levée si le nom contient moins de 3 caractères.
Exemples de valeurs invalides
null
""
" "
"Mi"
Propriété Age
La propriété Age permet d’obtenir ou de modifier l’âge du chat.
Domaine de validité
Age > 0
Validations requises
Une exception de type ArgumentException doit être levée si l’âge est plus petit ou égal à 0.
Exemple de valeur invalide
0
Travail demandé
Créer une classe de tests unitaires permettant de valider :
- la création d’un chat avec des valeurs valides ;
- la propriété
Matriculeavec une valeur valide ; - la propriété
Matriculeavec une valeurnull; - la propriété
Matriculeavec moins de4caractères ; - la propriété
Matriculeavec plus de4caractères ; - la propriété
Nomavec une valeur valide ; - la propriété
Nomavec une valeurnull; - la propriété
Nomavec une chaîne vide ; - la propriété
Nomavec une chaîne contenant seulement des espaces ; - la propriété
Nomavec moins de3caractères ; - la propriété
Ageavec une valeur valide ; - la propriété
Ageavec une valeur négative.