Arrange-Act-Assert (AAA) est un motif de structuration des tests en trois phases clairement délimitées : Arrange (mise en place), Act (exécuter l'action), Assert (vérifier le résultat). Il rend les tests lisibles, organisés et faciles à comprendre.
Les trois phases
ARRANGE → set up the test: create objects, prepare inputs, configure mocks, set state
ACT → perform the ACTION being tested (call the function/method under test)
ASSERT → verify the OUTCOME: check the result/behavior matches what's expected
→ A clear three-part structure for every test.
Exemple
test('Cart calculates total with discount', () => {
// ARRANGE — set up
const cart = new Cart();
cart.add({ price: 100 });
cart.applyDiscount(0.1); // 10% off
// ACT — perform the action under test
const total = cart.getTotal();
// ASSERT — verify the result
expect(total).toBe(90);
});
Les trois phases sont visuellement claires (souvent séparées par des lignes vides ou des commentaires), ce qui rend l'intention du test évidente : ce qui est mis en place, ce qui est fait, ce qui est vérifié.
Pourquoi AAA aide
✓ READABILITY — clear structure; easy to see setup vs action vs verification
✓ FOCUS — encourages testing ONE action per test (one clear Act)
✓ MAINTAINABILITY — consistent structure across tests; easy to understand/modify
✓ Spot problems — too much in Arrange (complex setup) or multiple Acts (testing too much)
→ (Given-When-Then is the same idea, in BDD terms: Given setup, When action, Then outcome.)
Pourquoi c'est important
Comprendre le motif Arrange-Act-Assert est précieux car il fournit une structure simple et efficace pour écrire des tests clairs et maintenables, ce qui en fait une connaissance pratique utile.
Le motif — structurer chaque test en Arrange (mettre en place le contexte du test, les entrées et l'état), Act (effectuer l'action unique testée), et Assert (vérifier que le résultat correspond aux attentes) — rend les tests lisibles et bien organisés, avec l'intention immédiatement claire (ce qui est mis en place, ce qui est fait, ce qui est vérifié).
Comprendre pourquoi AAA aide est la valeur clé : il améliore la lisibilité (la structure claire en trois parties rend les tests faciles à suivre), encourage la concentration (une seule action par test, puisqu'il y a une seule phase Act claire — promouvant des tests concentrés qui vérifient un seul comportement), améliore la maintenabilité (structure cohérente dans la suite de tests), et aide à identifier les problèmes (une mise en place excessive dans Arrange signale des dépendances complexes, plusieurs Acts signalent un test qui fait trop).
Suivre AAA produit des tests qui sont faciles à écrire, comprendre et maintenir — précieux puisque les tests sont lus et modifiés au fil du temps, et les tests peu clairs sont un vrai fardeau de maintenance.
Savoir que Given-When-Then (l'expression BDD : Given mise en place, When action, Then résultat) est la même idée relie AAA aux approches pilotées par le comportement.
Puisque l'écriture de tests clairs, bien structurés et maintenables est importante (les tests sont du code qui doit être compris et maintenu) et que AAA fournit une structure simple et efficace pour cela, et puisque comprendre le motif et ses avantages aide à écrire de meilleurs tests, comprendre le motif Arrange-Act-Assert est une connaissance précieuse et pratiquement pertinente — une pratique simple mais efficace pour écrire des tests clairs, concentrés et maintenables, largement utilisée et méritant d'être appliquée pour une meilleure qualité de test, une habitude utile pour quiconque écrit des tests.
