Licence 3 Informatique – Génie Logiciel

Ce TP permet de découvrir et de mettre en œuvre les tests unitaires dans Eclipse, tout en abordant la méthode du Test Driven Development (TDD) à travers plusieurs exercices pratiques. Il nécessite un environnement Eclipse configuré pour Java et une connaissance de base en programmation orientée objet.

D'après le document Licence 3 Informatique – Génie Logiciel

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Licence 3 Informatique – Génie Logiciel

Document source

Licence 3 Informatique – Génie Logiciel

Programming, Software Engineering · PDF · 2 pages

Afficher l'aperçu du document

Consulter le document original →

Ce TP permet de découvrir et de mettre en œuvre les tests unitaires dans Eclipse, tout en abordant la méthode du Test Driven Development (TDD) à travers plusieurs exercices pratiques. Il nécessite un environnement Eclipse configuré pour Java et une connaissance de base en programmation orientée objet.

Objectifs

  • Savoir configurer Eclipse pour réaliser des tests unitaires
  • Comprendre le Test Driven Development à travers des exemples simples

Prérequis et configuration

  • Environnement de développement Eclipse configuré pour Java
  • Connaissances de base en Java et en programmation orientée objet
  • Familiarité avec la notion de tests unitaires et le framework JUnit4

Mise en place de l’environnement de test dans Eclipse

Dans ce premier exercice, vous allez configurer votre projet Eclipse pour pouvoir écrire et exécuter des tests unitaires. L’exemple utilisé est celui du problème FizzBuzz, déjà vu en travaux dirigés.

Procédez comme suit :

  • Créez un paquetage nommé katas.
  • Dans ce paquetage, créez une classe FizzBuzz avec une méthode String getResult() qui renvoie null au départ.
  • À la racine de votre projet, créez un répertoire tests.
  • Faites un clic droit sur la racine du projet, sélectionnez Properties.
  • Dans la fenêtre qui s’ouvre, cliquez sur Java Build Path, puis dans l’onglet Source.
  • Vous devez voir le répertoire src listé. Ajoutez le répertoire tests que vous venez de créer.
  • Retournez dans le Package Explorer, faites un clic droit sur la classe FizzBuzz, puis New → JUnit Test Case.
  • Sélectionnez JUnit4 comme framework de test. Si Eclipse vous propose d’ajouter les librairies nécessaires, acceptez.
  • Choisissez le répertoire tests comme destination pour la classe de test.
  • Appuyez sur Next pour voir les méthodes à tester, sélectionnez celles qui vous semblent pertinentes, puis cliquez sur Finish.
  • Un nouveau fichier FizzBuzzTest apparaît dans src/. Déplacez-le dans le répertoire tests/.
  • Ouvrez FizzBuzzTest et examinez le code généré.
  • Faites un clic droit dans l’éditeur, sélectionnez Run as → JUnit Test. Le test doit échouer car la méthode getResult() renvoie null.

Cette étape vous permet de comprendre comment configurer Eclipse pour le TDD et préparer un test unitaire avant même d’écrire la logique métier.

Exercice sur la calculatrice en notation polonaise inversée

Dans cet exercice, vous allez concevoir une calculatrice utilisant la notation polonaise inversée (RPN). Cette notation place l’opérateur après les opérandes, ce qui évite l’usage des parenthèses.

Exemples :

  • 3 + 4 s’écrit 3 4 +
  • (3 + 4) * 5 s’écrit 3 4 + 5 * ou 5 3 4 + *

Questions à traiter avant de coder :

  • Quelle structure de données semble la plus adaptée pour gérer cette notation ? Expliquez pourquoi.
  • Comment différencier les chiffres des nombres ?
  • Comment gérer les nombres négatifs ?

Après avoir répondu à ces questions, écrivez d’abord les tests unitaires pour votre calculatrice, puis implémentez la classe CalculatricePolonaise qui effectuera les calculs à partir des entrées clavier de l’utilisateur.

Exercice du kata Harry Potter

Ce kata propose de modéliser un système de réduction de prix pour une série de livres Harry Potter. Les règles sont :

  • Chaque livre acheté seul coûte 8€
  • Deux livres différents donnent une réduction de 5%
  • Trois livres différents donnent une réduction de 10%
  • Quatre livres différents donnent une réduction de 20%
  • Cinq livres différents donnent une réduction de 25%

Questions :

  • Calculez le prix d’achat de 2 copies du 1er tome, 2 du 2nd tome, 2 du 3ème tome, 1 du 4ème tome et 1 du 5ème tome.
  • Écrivez les tests unitaires correspondant à ces cas.
  • Implémentez progressivement le code pour passer ces tests.

Résultats attendus

  • Dans le premier exercice, le test unitaire sur FizzBuzz doit initialement échouer car la méthode renvoie null.
  • Pour la calculatrice polonaise, les tests doivent valider la bonne gestion des opérandes, des opérateurs, des nombres négatifs et le calcul correct des expressions RPN.
  • Pour le kata Harry Potter, les tests doivent confirmer que les réductions sont correctement appliquées selon le nombre de livres différents achetés, et que le calcul du prix total correspond aux règles spécifiées.

Erreurs fréquentes

  • Oublier d’ajouter le répertoire tests dans le Java Build Path, ce qui empêche Eclipse de reconnaître les tests.
  • Ne pas sélectionner JUnit4 lors de la création de la classe de test, ce qui peut causer des incompatibilités.
  • Confondre la structure de données adaptée pour la calculatrice RPN : une pile (stack) est généralement la plus appropriée, car elle permet de gérer facilement l’ordre des opérandes et opérateurs.
  • Ne pas gérer correctement les nombres négatifs dans la saisie, ce qui peut provoquer des erreurs lors du calcul.
  • Dans le kata Harry Potter, ne pas bien identifier les livres différents pour appliquer la réduction correcte, ou appliquer la réduction sur le mauvais montant.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions