TypeScript:
Rédaction de tests

Comment faire :

TypeScript fonctionne harmonieusement avec la plupart des cadres de test JavaScript. À titre de démonstration, nous utiliserons Jest, un cadre de test populaire, en raison de sa configuration zéro pour les projets TypeScript.

Premièrement, assurez-vous d’avoir Jest et les types TypeScript nécessaires installés :

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

Ensuite, configurez Jest pour travailler avec TypeScript en modifiant le jest.config.js ou en en créant un nouveau :

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

Maintenant, écrivons une fonction simple et un test pour elle. Considérez un fichier sum.ts avec la fonction suivante :

// sum.ts
export function sum(a: number, b: number): number {
  return a + b;
}

Créez un fichier de test nommé sum.test.ts :

// sum.test.ts
import { sum } from './sum';

test('additionne 1 + 2 pour égaler 3', () => {
  expect(sum(1, 2)).toBe(3);
});

Exécutez vos tests avec :

npx jest

Un exemple de sortie indiquant un test réussi devrait ressembler à ceci :

 PASS  ./sum.test.ts
  ✓ additionne 1 + 2 pour égaler 3 (2 ms)

Pour du code asynchrone, Jest s’adapte avec async/await. Supposons que vous ayez une fonction asynchrone fetchData :

// asyncFunctions.ts
export async function fetchData(): Promise<string> {
  return "data";
}

Votre test utilisant des fonctions asynchrones :

// asyncFunctions.test.ts
import { fetchData } from './asyncFunctions';

test('récupère les données avec succès', async () => {
  expect(await fetchData()).toBe('data');
});

Lors de l’exécution de vos tests, Jest attendra que la promesse soit résolue, testant correctement les opérations asynchrones.

Rappelez-vous, un test efficace inclut l’écriture de plusieurs tests pour différents scénarios, y compris les cas limites, pour s’assurer que votre code TypeScript se comporte comme prévu.