Se rendre au contenu

JEST, VITEST et Testing Library

Développement Informatique > Développement Javascript


Une formation de 2 jours pour maîtriser les tests unitaires et d'intégration JavaScript avec Jest, Vitest et Testing Library.

La formation en 6 mots clés

Tests JavaScript

Jest et Vitest

Couverture de code

Tests d'intégration

Mocking et espions

Testing Library

Informations Pratiques et Programme

Prérequis


JavaScript ES6+, React ou Vue.js, notions de test unitaire (AAA pattern).

Durée


2 jours

Contenu Technique de la Formation


Jest et Vitest sont les frameworks de test dominants en JavaScript moderne. Cette formation couvre le cycle complet : tests unitaires, tests de composants React, mocking avec jest.fn/vi.fn, spies, snapshot testing, et couverture de code avec Istanbul.

  • Jest et Vitest — configuration, describe/it/expect, matchers, assertions avancées
  • Mocking et spies — jest.fn(), vi.fn(), jest.mock(), vi.mock(), spyOn
  • @testing-library/react et @testing-library/user-event — rendu de composants, user interactions
  • Snapshot testing — génération, mise à jour, bonnes pratiques et pièges
  • Coverage Istanbul et pytest-cov — rapports de couverture, seuils, exclusions
  • happy-dom et jsdom — environnements de test, performance, différences

Objectifs de la Formation


Les objectifs visés par cette formation sont :

  • Écrire des tests unitaires Jest/Vitest avec describe/it/expect et matchers spécialisés
  • Mocker des modules, fonctions et APIs avec jest.fn/vi.fn et spyOn
  • Tester des composants React avec @testing-library/react et simuler les interactions utilisateur
  • Générer et maintenir des snapshots de manière stratégique sans sur-test
  • Mesurer et améliorer la couverture de code avec Istanbul et afficher les rapports
  • Choisir entre jest et Vitest selon le contexte (CRA vs Vite) et configurer l’environnement de test

Table des Matières


Jest et Vitest : configuration et fondamentaux

  • Installation et configuration — jest.config.js vs vitest.config.ts, environments (node, jsdom)
  • describe/it/expect et structure AAA — Arrange, Act, Assert pattern
  • Matchers avancés — toEqual, toStrictEqual, toMatchObject, toThrow, toResolve
  • Async/await et promises — expect().resolves, expect().rejects
  • Setup et teardown — beforeEach, afterEach, beforeAll, afterAll


Mocking et spies

  • jest.fn() et vi.fn() — création de mocks, assertions sur les appels
  • jest.mock() et vi.mock() — mocking de modules, mocks hoisted
  • jest.spyOn() et vi.spyOn() — espionnage de méthodes sans remplacer l’implémentation
  • Mock implementations — mockReturnValue, mockImplementation, mockResolvedValue
  • Mocking de fetch et axios — intercepteurs, timeouts, réponses d’erreur


Testing Library et tests de composants React

  • @testing-library/react — render(), screen, getBy*/queryBy*/findBy*
  • @testing-library/user-event — userEvent.click(), userEvent.type(), user interactions réalistes
  • Queries et role-based selection — getByRole, getByLabelText, getByPlaceholderText
  • Async testing — waitFor(), findBy* queries, suspense avec await
  • Accessible testing — tester via les rôles ARIA, pas par CSS classes


Snapshot testing et couverture

  • Snapshot testing — generateSnapshots, updateSnapshots, use cases appropriés
  • Bonnes pratiques snapshots — petits snapshots ciblés, exclusion de données dynamiques
  • Coverage Istanbul et rapports — statement, branch, function, line coverage
  • Seuils de couverture (--coverage-threshold) — global, each, branches
  • happy-dom vs jsdom — performance, compatibilité, sélection selon le contexte


En Pratique


Écrire des tests unitaires avec Jest et Vitest

  • Configurer les frameworks et les fichiers de test
  • Rédiger des assertions complètes et lisibles


Tester les composants React avec Testing Library

  • Requêter les éléments DOM comme l'utilisateur le ferait
  • Valider les interactions et les changements d'état


Utiliser les mocks, stubs et espions

  • Isoler les dépendances externes et les appels API
  • Vérifier les appels de fonction et les paramètres


Mesurer et améliorer la couverture de code

  • Atteindre une couverture de 80%+ de façon pragmatique
  • Identifier les cas limites et les branches non testées


Modalités et Inscription


Cette formation est proposée selon deux formules pour s'adapter au mieux à vos besoins :


Session régulière

Des sessions sont organisées à intervalles réguliers. Demandez les prochaines dates planifiées pour vous inscrire à la prochaine session.


Sur mesure & intra-entreprise

Vous souhaitez former vos équipes directement dans vos locaux ou adapter le programme technique à votre contexte d'entreprise ? Contactez-nous pour obtenir un devis personnalisé.

Obtenir cette formation

Prêt à maîtriser les tests ? Rejoignez dès à présent la prochaine session ou contactez-nous pour organiser cette formation dans vos locaux.


Devis sur-mesure

S'inscrire à cette formation

Remplissez le formulaire pour obtenir plus d'informations.