Formation Tests unitaires

JUnit pour tests unitaires et d'intégration

Cette formation permet de comprendre les enjeux et les techniques des tests unitaires et d’intégration, avec la mise en œuvre de JUnit 5 et d’outils complémentaires, comme les Mock Objects ou Maven pour l’automatisation.

Elle aborde aussi toutes les bonnes pratiques nécessaires à la réalisation de tests efficaces et à l’élaboration d’une architecture pleinement compatible avec les tests unitaires. A l’issue de cette formation, vous serez aussi en mesure d’exécuter vos tests dans un environnement d’intégration continue.

Informations pratiques

Durée 3 jours
Format Présentiel / Distanciel
Participants 8 personnes max
Certificat Attestation de formation

Public cible

Prérequis

Prérequis obligatoires

  • Connaissance et pratique du dévelopemment Java

Environnement technique

Outils de développement

Configuration système

Programme détaillé

Principes et démarche

  • Les enjeux de la qualité logicielle

  • Les types de tests dans un projet

  • L’intégration des tests dans la démarche

  • Les tests en démarche agile : eXtrem Programming et SCRUM

  • La pratique du TDD (Test Driven Development)

Bases du framework JUnit

  • Présentation des tests unitaires

  • Le framework jUnit

  • Développer un cas de test

  • L’initialisation et finalisation d’un cas de test

  • La réutilisation des portions de test

Assertions

  • Les assertions de JUnit

  • De meilleurs assertions avec HamCrest

  • Améliorer la fluidité des assertions avec AssertJ

Mock Objects

  • Nos tests sont-ils réellement unitaires ?

  • Différencier les tests unitaires des tests d’intégration

  • Le principe des objets de leurre (Mock)

  • Les frameworks de Mock

  • La mise en œuvre avec Mockito

Bonnes pratiques de tests

  • L’organisation en packages

  • Les conventions de nommage

  • L’indépendance et l’isolation des tests

  • Trouver la bonne granularité

  • Gérer la durée et la fréquence des tests

  • Réaliser des tests aux limites

Automatisation des tests

  • Le principe de l’intégration continue

  • La place des tests en intégration continue

  • L’automatisation avec Maven

  • La configuration des plug-ins Surefire et Failsafe

Bonnes pratiques pour l’écriture de code testable

  • Le développement par composants

  • La délégation plutôt que l’héritage

  • Une gestion souple des dépendances avec l’inversion de contrôle et l’injection

  • Le problème des méthodes static

  • La gestion des dates

Couverture des tests

  • Les métriques de couverture de tests

  • Les objectifs de couverture

  • L’évaluation de la couverture des tests avec JaCoCo et SonarQube

Tests d’intégration

  • La différence avec les tests unitaires

  • L’intégration avec la base de données

  • Les outils DbUnit et DbSetup

  • L’isolation des tests grâce à Docker et TestContainers

  • L’exemple de l’envoi de mails

  • Tester les applications Web avec RestAssured et Selenium

Tests avec Spring Framework

  • Tests unitaires avec Spring et Spring Boot

  • Bonnes pratiques Spring

  • Spring / JUnit

  • Gestion des scopes

  • Ressources autonomes et mocks

  • Intégration de Docker

Fonctionnalités avancés de JUnit

  • Les extensions de JUnit 5

  • Les conditions d’exécution

  • Les paramètres de tests et tests paramétrés

  • Les plugins pour IDE : MoreUnit

Synthèse et Conclusion

  • Intégrer les tests unitaires dans la démarche

  • Que faut-il tester en priorité ?

  • Quels types de tests sont les plus rentables ?

Objectifs et résultats attendus

Compétences acquises

Livrables formation

  • Code source de tous les travaux pratiques
  • Projet final complet et fonctionnel
  • Slides de formation en PDF
  • Notes techniques
  • Ressources et liens utiles

Prêt à maîtriser ?

Contactez-moi pour organiser cette formation pour votre équipe ou vous inscrire à la prochaine session.

Formation disponible en présentiel ou en distanciel.
Adaptation du contenu possible selon vos besoins spécifiques.