Test TypeScript : guide pas à pas pour débutants

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

Pourquoi tester TypeScript n'est pas effrayant, mais rentable

\n\n

Vous avez écrit une superbe fonction en TypeScript, lancé le projet — tout fonctionne. Une semaine plus tard, vous avez ajouté une nouvelle fonctionnalité, et l'ancienne logique est cassée. Cela vous dit quelque chose ? Si oui, il est urgent de vous lier d'amitié avec les tests. Et n'ayez pas peur : les tests ne sont pas une corvée ennuyeuse, mais votre « détecteur de bugs » personnel qui fonctionne 24h/24 et 7j/7.

\n\n

Dans cet article, nous allons voir par où commencer le test TypeScript pour un débutant. Vous apprendrez à configurer l'environnement, à écrire votre premier test unitaire et à ne pas vous perdre dans les types. Pas de blabla — seulement de la pratique et des exemples de code concrets.

\n\n

Pourquoi tester TypeScript alors qu'il est déjà sûr ?

\n\n

TypeScript détecte effectivement de nombreuses erreurs lors de la compilation : types incorrects, champs manquants, arguments erronés. Mais le typage statique ne protège pas des erreurs logiques. Votre fonction peut parfaitement passer la compilation, mais donner un résultat incorrect. Par exemple :

\n\n
function sum(a: number, b: number): number {\n  return a - b; // Erreur ! Soustraction au lieu d'addition\n}
\n\n

TypeScript ne dira rien — les types sont respectés. En revanche, un test unitaire montrera immédiatement que sum(2, 2) n'est pas égal à 4. C'est pourquoi tester TypeScript n'est pas un caprice, mais une nécessité pour tout projet sérieux.

\n\n

Étape 1. Choisir l'outil : pourquoi Jest est le meilleur ami du débutant

\n\n

Il existe plusieurs frameworks de test populaires sur le marché : Mocha, Jasmine, Vitest, Jest. Pour les débutants, je recommande vivement Jest. Pourquoi ?

\n\n
    \n
  • Fonctionne « prêt à l'emploi » — pas besoin de configuration longue.
  • \n
  • Mécanisme de mock intégré et couverture de code.
  • \n
  • Excellent support de TypeScript via ts-jest.
  • \n
  • Messages d'erreur clairs.
  • \n
\n\n

Installons Jest dans votre projet. Je suppose que vous avez déjà TypeScript. Sinon, créez un nouveau projet :

\n\n
mkdir my-ts-project\ncd my-ts-project\nnpm init -y\nnpm install typescript jest @types/jest ts-jest --save-dev
\n\n

Créons maintenant un fichier jest.config.js à la racine du projet :

\n\n
module.exports = {\n  preset: 'ts-jest',\n  testEnvironment: 'node',\n  roots: ['/src'],\n  testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],\n};
\n\n

Et ajoutons un script dans package.json :

\n\n
"scripts": {\n  "test": "jest",\n  "test:watch": "jest --watch"\n}
\n\n

Prêt ! Vous pouvez maintenant écrire des tests.

\n\n

Étape 2. Écrire notre premier test en TypeScript

\n\n

Créons une fonction simple dans le fichier src/math.ts :

\n\n
export function add(a: number, b: number): number {\n  return a + b;\n}\n\nexport function divide(a: number, b: number): number {\n  if (b === 0) {\n    throw new Error('Division par zéro interdite');\n  }\n  return a / b;\n}
\n\n

Écrivons maintenant un test pour cette fonction. Créez un dossier src/__tests__/ et un fichier math.test.ts :

\n\n
import { add, divide } from '../math';\n\ndescribe('Fonctions mathématiques', () => {\n  test('additionne deux nombres correctement', () => {\n    expect(add(2, 3)).toBe(5);\n    expect(add(-1, 1)).toBe(0);\n    expect(add(0, 0)).toBe(0);\n  });\n\n  test('divise deux nombres', () => {\n    expect(divide(10, 2)).toBe(5);\n    expect(divide(9, 3)).toBe(3);\n  });\n\n  test('lève une erreur lors de la division par zéro', () => {\n    expect(() => divide(5, 0)).toThrow('Division par zéro interdite');\n  });\n});
\n\n

Lancez npm test et voyez le rapport vert. Félicitations — vous venez d'écrire vos premiers tests unitaires en TypeScript !

\n\n

Que s'est-il passé ici ?

\n\n
    \n
  • describe — regroupe les tests dans un groupe logique.
  • \n
  • test ou it — un cas de test individuel.
  • \n
  • expect — une assertion qui vérifie

Blogs

Book Recommendations