- Pratiquer JUnit 5 (tests unitaires) et JaCoCo (couverture).
- Implémenter des utilitaires de chaînes robustes et testables.
- Préparer un dépôt propre (README, Maven Wrapper).
- URL du dépôt Git (public ou accès fourni).
- Code source des 3 services implémentés.
- Jeux de tests JUnit 5 couvrant les cas nominaux + bords + erreurs.
- Capture d’écran du rapport JaCoCo (index.html) après
mvnw verify. - README minimal : comment exécuter les tests et où trouver le rapport.
Vous devez coder dans src/main/java/edu/tp1/toolkit/ :
- Slugifier : transformer un texte libre en slug (minuscules, accents retirés, ponctuation nettoyée, espaces →
-, multi--réduits, trim). - PalindromeService :
isPalindrome(String)— true si la chaîne est un palindrome en ignorant la casse, les espaces, la ponctuation et les accents. Convention : vide/espaces → palindrome. - WordCounter :
count(String)— nombre de mots en considérant espaces, tabulations,-et_comme séparateurs ; ponctuation classique retirée ; accents considérés comme lettres.null→IllegalArgumentException.
Les signatures existent déjà ; ne les changez pas.
- Clone & build :
./mvnw -B -V clean verify(oumvnw.cmdsous Windows). - Créer la structure de tests (
src/test/java/...), ajouter JUnit 5 (déjà danspom.xml). - Implémenter progressivement chaque service :
- commencer par les cas nominaux ;
- gérer
null, vide, accents, ponctuation, séparateurs multiples ; - préférer des méthodes courtes et testables.
- Écrire des tests : cas positifs/négatifs, bords (
null, vide, multi-séparateurs, idempotence…). - Mesurer & améliorer la couverture avec JaCoCo : ouvrir
target/site/jacoco/index.htmlet combler les branches non couvertes. - (Option Jenkins) : si disponible, utilisez le
Jenkinsfilefourni pour exécutermvnw verifyen CI.
- Ne pas modifier les versions Maven/JUnit/JaCoCo.
- Ne pas supprimer le Maven Wrapper.
- Code clair, testé, sans warnings de compilation.
Bon TP !