Tests en TypeScript avec Jest

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 le test en TypeScript ?

Le test en TypeScript est le processus de vérification de la correction du code écrit en langage TypeScript à l'aide de bibliothèques et de frameworks spécialisés. TypeScript est un sur-ensemble de JavaScript qui ajoute un typage statique, ce qui rend les tests particulièrement efficaces : les types aident à détecter les erreurs lors de la compilation, tandis que les tests vérifient la logique métier et le comportement de l'application. La bibliothèque principale pour tester TypeScript est Jest, qui prend en charge TypeScript nativement ou via des configurations supplémentaires.

Pourquoi le test est-il nécessaire en TypeScript ?

Le test est nécessaire pour garantir la fiabilité du code, prévenir les régressions, accélérer le développement et documenter le comportement des fonctions. En TypeScript, les tests sont particulièrement utiles car ils vérifient non seulement la logique, mais aussi la conformité des types, ce qui réduit le nombre d'erreurs d'exécution. Sans tests, il est difficile de maintenir de grands projets où les modifications dans un module peuvent casser d'autres parties du système.

Comment installer Jest pour TypeScript ?

Pour installer Jest avec le support de TypeScript, exécutez les commandes dans le terminal :

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

Créez ensuite un fichier de configuration jest.config.js :

module.exports = {  preset: 'ts-jest',  testEnvironment: 'node',};

Ou utilisez la commande d'initialisation : npx ts-jest config:init. Après cela, vous pouvez exécuter les tests avec la commande npx jest.

Fonctions principales de Jest en TypeScript

  • describe et it — regroupement et description des cas de test.
  • expect — assertions pour vérifier les valeurs.
  • matchers — fonctions intégrées pour la comparaison (toBe, toEqual, toBeTruthy, etc.).
  • mock-fonctions — simulation de dépendances et de modules.
  • async/await — prise en charge du code asynchrone.
  • coverage — utilitaire intégré pour mesurer la couverture du code par les tests.

Exemple de code en TypeScript

Considérons une fonction simple et son test :

// math.tsexport function add(a: number, b: number): number {  return a + b;}

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

describe('add function', () => { it('should add two numbers correctly', () => { expect(add(2, 3)).toBe(5); });

it('should handle negative numbers', () => { expect(add(-1, 1)).toBe(0); });

it('should return NaN for invalid inputs', () => { // TypeScript ne permettra pas de passer une chaîne, mais si on contourne les types : expect(add(NaN, 5)).toBeNaN(); });});

Exécutez le test avec la commande npx jest. Vous verrez un rapport sur la réussite des tests et la couverture.

Quand utiliser Jest pour TypeScript ?

Jest est recommandé dans les cas suivants :

  • Applications Node.js et serveurs API en TypeScript.
  • Projets frontend avec React, Angular ou Vue (Jest fonctionne avec le DOM via jsdom).
  • Bibliothèques et utilitaires où la sécurité des types est importante.
  • Projets avec CI/CD nécessitant une exécution automatique des tests.
  • Architecture de microservices pour des tests isolés des modules.

Évitez Jest si vous devez tester uniquement les types (utilisez tsc --noEmit) ou si le projet utilise un autre framework de test (par exemple, Mocha ou Vitest).

Recommendations