Nantes Université

Skip to content

RISK F : Refactorisation de la classe WarObserver et amélioration des tests

Problèmes identifiés (Code Smells) :

Redondance de la logique d'ajout et suppression d'observateurs : La gestion des observateurs était effectuée avec une ArrayList, ce qui permettait d'ajouter des doublons et n'optimisait pas la suppression des éléments.

Absence de gestion des null : Il n'y avait pas de validation pour éviter l'ajout d'un observateur null, ce qui aurait pu entraîner des erreurs.

Gestion incorrecte de la suppression d'un observateur inexistant : La méthode removeObserver() ne gérait pas bien la situation où l'observateur à supprimer n'existait pas dans la liste.

Difficulté à tester la notification des observateurs : La méthode notifyWarObservers() était difficile à tester car elle invoquait directement update() sur chaque observateur sans moyen simple de vérifier qu'elle avait bien été appelée.

Absence de couverture complète des tests : Les tests initiaux ne couvraient pas tous les cas importants, comme l'ajout d'un observateur null, la notification avec une liste vide, ou la suppression d'un observateur inexistant.

Gestion simplifiée des observateurs : La gestion des observateurs était trop simplifiée, sans validation pour éviter les doublons et sans flexibilité pour les cas extrêmes.