Book · Chapter 20

18. Tests et outillage

18. Tests et outillage

Un bon test est un document vivant. Il capture l’intention et vous protĂšge contre les rĂ©gressions. Dans un langage systĂšme, un test est aussi un garde‑fou de sĂ©curitĂ©.

Types de tests

Tests unitaires pour les fonctions critiques. Tests d’intĂ©gration pour les flux complets. Tests de non‑rĂ©gression pour les bugs corrigĂ©s.

L’outillage

Le principe est simple : un test doit ĂȘtre rapide Ă  lancer et facile Ă  comprendre. Les scripts de test du repo sont pensĂ©s dans cet esprit.

Un bon test

Un bon test est court, prĂ©cis, et raconte une histoire. Si vous devez relire le test trois fois pour comprendre ce qu’il fait, le test est trop complexe.

Tests comme documentation

Un test est une preuve. Quand vous revenez six mois plus tard, c’est souvent plus clair qu’un commentaire. Écrivez des tests comme des exemples explicites.

Erreurs courantes

Tester trop de choses dans un seul test. Écrire un test qui dĂ©pend de l’ordre d’exĂ©cution. Utiliser des donnĂ©es alĂ©atoires sans seed.

À retenir

Les tests ne sont pas un coût, ils sont une assurance.

Exemple guidé : un test de bug

Reproduisez un bug rĂ©el (mĂȘme petit), puis Ă©crivez un test minimal. C’est une pratique clĂ© pour un langage en Ă©volution.

Checklist tests

Tests courts. Tests stables. Tests qui racontent une histoire.

Exercice : test minimal

Prenez un bug corrigé et écrivez un test qui échoue avant le fix et passe aprÚs. Ce test est votre mémoire technique.

Code complet (API actuelle)

Exemple : test de non‑rĂ©gression (conceptuel) basĂ© sur un binaire.

vitte check tests/case.vit

API idéale (future)

Un framework de test intĂ©grĂ© (assertions, fixtures, snapshots) simplifierait l’écriture de tests.