Objectifs pédagogiques
- Décrire les principes de développement des tests
- Mettre en oeuvre JUnit.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Niveau requis
Avoir une pratique du langage Java.
Public concerné
Architectes, chefs de projets, consultants ou ingénieurs.
Programme
Introduction
- Pourquoi tester ?
- Différents types de tests
- Coût des tests
- Qu'est-ce qu'un test unitaire ?
- Quels tests réaliser ?
- Automatiser les tests
JUnit 3 : les concepts de base
- Cas de test (TestCase)
- Contraintes et conventions
- Structure d'un test
- Assertions, échec et erreur
- Exécution d'un TestCase
- Exécution automatique
- Résultat des tests
- Gestion du cycle de vie
- Factoriser les fixtures
- Test de levée d'exception
- Organiser les tests (TestSuite)
- Bonnes pratiques : comment tester ?
- Notion de couverture de tests
- Autres aspects avancés de JUnit3
- Limitations de JUnit3
JUnit 4
- Ecriture des TestCase avec les annotations
- Cycle de vie avec les annotations
- Exécution des tests avec JUnit 4
- Assertions avec
- JUnit 4
- Hamcrest
- AssertJ
- Test de levée d'exception
- Test de durée
- Désactivation d'un test
- Suppositions (assumptions)
- Suite de tests avec les annotations
- Organiser ses tests avec les catégories
- Tests paramétrés
- Concept de règle (Rule)
- Rules proposées
Mocks
- Motivation et principe
- Différents types de simulacre
- Concevoir "testable"
- Mock statique / dynamique
- Frameworks de mocking
- EasyMock : les bases
- Principe du record - replay - verify
- Vérifications plus complexes
- JMockit : pour le code non testable
- Mockito : un des plus utilisés
- PowerMock : pour compléter EasyMock / Mockito
- Bonnes pratiques
JUnit 5
- Nouvelle architecture
- Correspondance des concepts / annotations
- Nouvelles annotations
- Etiquettes (Tag)
- Nouvelles assertions
- Suites de tests avec JUnit 5
- Tests paramétrés avec sources
- Tests répétés
- Tests dynamiques
- Les tests imbriqués
- Tests dans les interfaces
Pour aller plus loin
- Principes du TDD (Test Driven Development)
- Principes du mutation testing
- Intégration continue
- Tests d'intégration
- Principes du BDD (Behavior Driven Development)
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des cas pratiques et/ou mises en situation