La parole est aux speakers : Enrique Nerea

Publié le

Jusqu’au Forum PHP 2024, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

StandAAArdisez vos tests !

Une bonne partie de notre travail consiste à lire et écrire des tests. Mais comment les unifier tout en gardant la maintenabilité et la robustesse ? Une partie de la réponse pourrait bien se trouver dans le pattern AAA !

Le pattern AAA (Arrange, Act, Assert) est une approche qui permet de structurer l’écriture de tests unitaires. Cela peut améliorer la qualité de notre code en nous forçant à écrire des tests concis et focalisés, ce qui rend le code plus facile à comprendre et à déboguer. Cependant, comme toute approche, le pattern AAA a aussi ses défis. Par exemple, il peut être difficile d’appliquer ce pattern dans des scénarios complexes.

Voyons comment ce pattern peut simplifier notre écriture de tests !

Ballroom Johnson / ABCDEF
10/10/2024
11:55-12:35

Est-ce que tu peux présenter le pattern AAA en 3 mots ?

Arrange, Act, Assert ! 😎

Blague à part, c’est un pattern qui permet de structurer notre pensée lorsqu’on écrit des tests. C’est pratique pour les débutants, dans l’écriture de tests, pour démarrer d’une façon simple. Mais c’est aussi pratique pour les moins débutants de se rappeler que la simplicité du AAA est parfois/souvent est suffisante !

Pour toi quelle est l’erreur la plus commune ou problématique lors de l’écriture de tests ?

Hm, c’est compliqué comme question ! Je ne pense pas qu’il y ait une seule erreur commune, mais un mélange de plusieurs 🤔

Ce qu’on recherche dans un test, c’est d’être confiant·e pour pouvoir modifier notre code. Les tests doivent fail si on a changé le comportement attendu. Cela veut dire qu’il faut qu’il soit robuste (par exemple, déjà qu’il teste bien les bonnes choses ça aide 😉 )

* Le manque d’organisation dans l’écriture d’un test : dans ce cas on perd le but du test assez rapidement à la lecture.

* À ça on peut rajouter qu’écrire des mocks ce n’est pas tout le temps fun ! On sait que c’est une partie (potentiellement) verbeuse du test, c’est d’autant plus important de bien l’organiser.

* On a toutes et tous fait ou vu quelqu’un suivre bêtement le code pour écrire le test. Si si, cette pratique de mettre côte à côte le test et le code à tester. On suit instruction par instruction ce que le code fait et on “traduit” en test. Ce n’est pas la meilleure façon d’apprendre. On ne réfléchit pas à la responsabilité du test.

* D’ailleurs, justement, un autre souci est qu’on ne réfléchit pas à suffisamment de cas de tests. On se contente parfois de valider le cas nominal : “ça fonctionne”. Et on oublie de tester d’autres valeurs qui peuvent passer et être invalides ou d’autres cas d’erreur prévus.

Existe-t-il des outils ou méthodologies pour s’assurer de la bonne tenue dans le temps du pattern AAA au sein d’une équipe ?

Je n’ai pas trouvé d’outils pour se tenir à ce pattern. Ça reste une façon d’organiser le contenu des tests.

Mais d’un autre côté, est-ce que se tenir uniquement au AAA 100% des cas et tel qu’il est défini est une bonne pratique ? Je ne ferais pas de spoils ! On en reparlera le jour J !

Une conférence présentée par

Nerea ENRIQUE
Nerea ENRIQUE
Ingénieure PHP la journée chez ekino et artiste à chaque instant, Nerea aime autant partager ses connaissances qu'affronter des algorithmes ou la théorie des couleurs ! Amoureuse des choses bien faites et parfois trop perfectionniste dans tous les domaines.

Autres intervenants