–
Mission 1Tests & déploiement

Une vérification qui crie

Monde 1 · Écrire des tests

Codey

Concept

Un test, c'est du code qui vérifie du code

Un test automatique appelle une fonction avec des données choisies, puis vérifie le résultat. S'il est faux, le test échoue bruyamment — avant qu'un joueur ne tombe sur le bug.

La brique de base est l'assertion : une fonction qui ne fait rien si tout va bien, et qui lève une erreur explicite sinon. « Attendu 90, reçu 100 » vaut mieux que « échec ».

Attention à la comparaison : === compare les références des tableaux et des objets. [1, 2] === [1, 2] est faux. Une assertion d'égalité compare donc les valeurs, par exemple en comparant leur écriture JSON.

Exemple
1function egal(recu, attendu) {2  const r = JSON.stringify(recu);3  const a = JSON.stringify(attendu);4  if (r !== a) throw new Error("Attendu " + a + ", reçu " + r);5}6 7egal(prixTotal([10, 20]), 30);   // silencieux : tout va bien8egal(prixTotal([]), 0);          // Error: Attendu 0, reçu undefined

Les bibliothèques de test (Vitest, Jest, node:test) fournissent ces assertions : expect(x).toEqual(y), assert.deepStrictEqual(x, y). Les écrire une fois soi-même permet de savoir ce qu'elles font.