TDD

Testing 🟡 Mid

Définition

Test-Driven Development : méthodologie ou on écrit le test AVANT le code, en cycle Red-Green-Refactor. Force a designer l'API avant l'implémentation.

Analogie

Comme écrire la liste de courses avant de cuisiner : vous savez exactement ce dont vous avez besoin avant de commencer.

Exemple de code

// 1. RED: ecrire un test qui echoue
test('isPalindrome returns true', () => {
  expect(isPalindrome('kayak')).toBe(true);
});
// 2. GREEN: code minimal pour passer
const isPalindrome = (s) => s === s.split('').reverse().join('');
// 3. REFACTOR: ameliorer sans casser

Cas d'usage

Pour le code métier complexe (algorithmes, règles de gestion) ou le design émerge naturellement des tests.

Anti-pattern

Appliquer TDD dogmatiquement a du code CRUD simple ou l'overhead n'apporte aucune valeur.

Termes liés

#testing#interview#methode

En entretien

  1. Explique-moi le cycle TDD.

    Le Test-Driven Development consiste à écrire le test avant le code, en cycle Red-Green-Refactor, ce qui force à designer l'API avant l'implémentation. C'est adapté au code métier complexe comme des algorithmes ou des règles de gestion, où le design émerge naturellement des tests.

  2. Quand éviter d'appliquer TDD dogmatiquement ?

    Sur du code CRUD simple, où l'overhead du cycle Red-Green-Refactor n'apporte aucune valeur ajoutée. TDD est un outil de design, pas une obligation universelle sur chaque ligne de code.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre