Dernière modification : Dec 08 , 2024
Dernière modification : Dec 08 , 2024

Contenu de l'exercice

Cloner ou télécharger le dépôt GIT disponible ici : GIT

Importer le projet junit-exercise-dependencies

Objectifs de l'exercice

Le projet contient une classe SchoolGrades qu'il convient de tester.

Etapes :

Explications du programme

Le programme consiste en un petit module qui permet d'ajouter des notes à des élèves pour un examen appelé "BAC".

Ce module peut notamment calculer la moyenne de la classe. Et c'est cette fonction que nous souhaitons tester.

L'inconvénient c'est que ce code a été développé et intégré directement dans la classe SchoolGrades qui utilise différentes dépendances.

Le challenge est important car il va avoir plusieurs défis à resoudre.

Créer la classe de test

En fonction de votre IDE, vous pouvez créer directement une classe de test en cliquant sur la classe SchoolGrades , faire ALT+ENTER dessus et sélectionner "Create Test"

Sinon, vous pouvez créer une classe, lui donner un nom comme SchoolGradesTest.

Préparer le test

Pour préparer le test, il convient d'initialiser la classe SchoolGrades afin de pouvoir l'utiliser.

La difficulté repose sur le fait que la classe SchoolGrades dépend de deux autres composants :

  • la partie authentication
  • la partie gestion des utilisateurs

Le défi de la partie authentication

La partie authentification dépend d'un service REST dont nous n'avons pas l'accès. De plus ce service est utilisé partout dans les classes et génère des exceptions assez ennuyeuses.

Imposez un refactoring aux classes pour permettre de créer un test double de AuthenticationService.

Le défi de la partie gestion des étudiants

La partie gestion des utilisateurs peut démarrer de manière autonome même si l'obtention des données est très lente.

Est-ce que vous souhaitez utiliser l'environnement de production qui est lent ? Ou pouvez-vous trouver une autre méthode pour tester la méthode ?

Etude de la méthode

Déterminer les tests nécessaires pour vérifier l'exigence "le module SchoolGrades calcule la moyenne de la classe".

Implémenter vos tests

Créer vos tests pour vérifier l'exigence "le module SchoolGrades calcule la moyenne de la classe".