Description
Cette formation sur les tests dans Angular vise à renforcer les compétences des développeurs en matière de qualité logicielle. Elle aborde l'importance des tests, les différents types (unitaires, d'intégration, end-to-end) et leur spécificité dans Angular. Les participants apprendront à configurer un environnement de test avec Karma et Jasmine, à réaliser des tests unitaires et d'intégration, ainsi qu'à utiliser des mocks et spies. Des notions avancées, comme les tests E2E avec Cypress, seront également couvertes, permettant d'améliorer la lisibilité et la maintenabilité des tests. Ce programme s'adresse principalement aux développeurs Angular
Objectifs
- Rédiger et exécuter les tests unitaires et d'intégration relatifs à ses développements
- Organiser son code de manière à optimiser la production des tests unitaires
Récapitulatif
Public
Développeurs Angular débutant ou confirmé
Prérequis
Avoir des connaissances pratiques sur les technologies du Web
Développer sous Angular
Méthodes et modalités pédagogiques
Formation réalisée en Présentiel, Distanciel ou Dual-Learning selon la formule retenue.
Moyens et supports pédagogiques
Mise à disposition d'un poste de travail sur nos formations en Présentiel.
Mise à disposition de nos environnements de visio sur nos formations en Distanciel
Remise d'une documentation pédagogique numérique pendant la formation
La formation est constituée d'apports théoriques, d'exercices pratiques et de réflexions
Dans le cas d'une formation sur site Entreprise, le client s'engage à avoir toutes les ressources pédagogiques nécessaires (salle, équipements, accès internet, TV ou Paperboard...) au bon déroulement de l'action de formation conformément aux prérequis indiqués dans le programme de formation
Modalités de suivi et d'évaluations
Auto-positionnement des stagiaires avant la formation
Émargement des stagiaires et formateur par 1/2 journée
Exercices de mise en pratique ou quiz de connaissances tout au long de la formation permettant de mesurer la progression des stagiaires
Auto-évaluation des acquis de la formation par les stagiaires
Questionnaire de satisfaction à chaud et à froid à l'issue de la formation
Programme détaillé
Introduction aux tests dans Angular
- Importance des tests dans le développement logiciel
- Présentation des différents types de tests (unitaires, d'intégration, end-to-end)
- Spécificités des tests dans le contexte d'Angular
Configuration de l'environnement de test
- Présentation de Karma (test runner) et Jasmine (framework de test)
- Configuration du projet Angular pour les tests
- Structure des fichiers de test (.spec.ts)
Bases des tests unitaires avec Jasmine
- Syntaxe de base (describe, it, expect)
- Matchers couramment utilisés
- Hooks (beforeEach, afterEach)
Introduction au testbed
- Rôle et importance du TestBed
- Configuration de base du TestBed
- Création d'un composant de test simple
Tests de composants Angular
- Test des propriétés et méthodes du composant
- Vérification du rendu du template
- Simulation d'interactions utilisateur
Tests d'intégration des services
- Injection de dépendances dans les tests
- Mocking des services
- Tests des appels HTTP avec HttpClientTestingModule
Mocks et spies
- Création et utilisation de mocks
- Utilisation des spies Jasmine
- Simulation de comportements asynchrones
Tests des guards
- Configuration du TestBed pour les guards
- Test des différents types de guards (CanActivate, CanDeactivate, etc.)
Tests des directives
- Création d'un composant de test pour les directives
- Vérification du comportement des directives
- Test des interactions entre directives et composants
Tests des pipes
- Configuration du TestBed pour les pipes
- Test des pipes purs et impurs
- Vérification des transformations de données
Tests d'intégration avancés ou E2E avec Cypress
Test des interactions entre composants
- Simulation de la navigation et des paramètres de route
- Test des formulaires réactifs
Bonnes pratiques et optimisation
- Organisation des tests et couverture de code
- Techniques pour améliorer la lisibilité et la maintenabilité des tests
- Optimisation des performances des tests