Historique de la question :
Le modèle Arrange-Act-Assert (AAA) a été proposé pour simplifier la structure des tests et améliorer leur lisibilité. Il est largement utilisé dans les frameworks de test modernes et constitue une norme de facto lors de l'écriture de tests automatisés de tout type.
Problème :
Sans une structure claire, les cas de test deviennent encombrants, difficiles à lire et compliqués à maintenir. Il y a confusion entre la préparation des données, l'appel du comportement testé et la vérification des résultats. Cela entraîne une accumulation de dette technique et des erreurs dans les tests.
Solution :
Se conformer rigoureusement au modèle AAA lors de l'écriture d'un test.
Caractéristiques clés :
Peut-on enfreindre l'ordre AAA si le test semble évident ?
En général, non. Tout écart à la structure AAA réduit la lisibilité du test pour les autres développeurs et le rend vulnérable aux erreurs lors de la maintenance.
Est-il permis de combiner Act et Assert dans une seule expression pour des tests courts ?
Il vaut mieux éviter cela, car cela complique la compréhension et le possible élargissement du test à l'avenir.
Faut-il inclure la logique de nettoyage des données (cleanup) dans l'étape Arrange ?
Non. Le nettoyage ou le teardown est généralement réalisé par des méthodes séparées, par exemple, dans des hooks de framework de test (After, AfterEach).
Un test ajoutant une entrée dans une base de données commence par une vérification, puis ajoute seulement après. Une assertion aléatoire au milieu empêche de comprendre.
Avantages :
Inconvénients :
Le test commence par un nettoyage des données, puis suit l'ajout d'une entrée, et enfin — la vérification du résultat, strictement selon AAA.
Avantages :
Inconvénients :