Jest pour TypeScript : Guide complet de test

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que Jest et pourquoi est-il nécessaire pour TypeScript ?

Jest est un framework de test puissant et populaire pour JavaScript et TypeScript, développé par Meta (Facebook). Il fournit tout le nécessaire pour écrire des tests unitaires, des tests d'intégration et des tests snapshot « prêts à l'emploi » : une bibliothèque d'assertions, des mocks, des espions, des minuteurs et la couverture de code. Pour TypeScript, Jest est particulièrement précieux car il permet de vérifier les types pendant l'exécution des tests, ce qui améliore la fiabilité du code. L'utilisation de Jest avec TypeScript aide les développeurs à trouver les erreurs plus rapidement, à refactoriser le code en toute confiance et à maintenir une haute qualité de projet.

Installation et configuration

Pour commencer, installez Jest et les types nécessaires via npm ou yarn :

npm install --save-dev jest @types/jest ts-jest typescript

Ensuite, initialisez la configuration de Jest :

npx ts-jest config:init

Cela créera un fichier jest.config.js avec les paramètres pour TypeScript. Assurez-vous que tsconfig.json a "module": "commonjs" ou utilisez ts-node pour ESM.

Fonctionnalités principales

  • describe et it/test — regroupement et écriture de tests.
  • expect — fonction d'assertion avec de nombreux matchers (toBe, toEqual, toContain, toThrow, etc.).
  • beforeEach / afterEach — hooks pour la préparation et le nettoyage de l'environnement.
  • jest.mock — mock automatique des modules.
  • jest.spyOn — surveillance des appels de fonctions.
  • Test snapshot — comparaison de la sortie des composants.
  • Couverture de code — utilitaire intégré --coverage.

Exemple de code en TypeScript

// math.tsexport const add = (a: number, b: number): number => a + b;export const divide = (a: number, b: number): number => {  if (b === 0) throw new Error('Division by zero');  return a / b;};

// math.test.tsimport { add, divide } from './math';

describe('Math functions', () => { test('adds two numbers correctly', () => { expect(add(2, 3)).toBe(5); expect(add(-1, 1)).toBe(0); });

test('throws error when dividing by zero', () => { expect(() => divide(10, 0)).toThrow('Division by zero'); });

test('divides correctly', () => { expect(divide(10, 2)).toBe(5); expect(divide(9, 3)).toBeCloseTo(3); });});

Quand utiliser Jest avec TypeScript ?

  • Tout projet TypeScript — des petites bibliothèques aux grandes applications.
  • Développement avec TDD — Jest est parfait pour écrire des tests avant l'implémentation.
  • Refactorisation — pour s'assurer que les changements n'ont pas cassé la logique existante.
  • Pipelines CI/CD — exécution rapide des tests et vérification de la couverture.
  • Test de composants React — avec @testing-library/react.

Jest est la norme de facto pour tester TypeScript, grâce à sa simplicité de configuration, sa riche API et son excellente intégration avec les outils modernes.

Recommendations