Given-When-Then
Testing 🟢 JuniorDéfinition
Format de description des tests issu du BDD : Given (contexte initial), When (action), Then (résultat attendu). Équivalent de AAA en langage métier.
Analogie
Comme raconter une histoire : 'Étant donne que... Quand... Alors...' — même votre PO peut comprendre le test.
Exemple de code
// Given-When-Then en Gherkin
// Given un panier avec 3 articles
// When l'utilisateur applique le code PROMO10
// Then le total est reduit de 10%
test('PROMO10 reduces total by 10%', () => {
const cart = createCart({ items: 3, total: 100 });
const result = applyPromo(cart, 'PROMO10');
expect(result.total).toBe(90);
});
Cas d'usage
Pour les tests d'acceptance et BDD ou le langage métier doit être compréhensible par les non-techniques.
Anti-pattern
Écrire des Given-When-Then trop techniques qui perdent l'intérêt de la lisibilité métier.