Récemment j'ai bossé sur une fonctionnalité qui n'avait pas de logique d'orchestration ou algorithmique particulière.
L'idée est de générer un blurhash d'une image et de le sauvegarder en base.
Je voulais tester la performance sur mon serveur de ce genre d'opération, voir si c'était une solution pérenne.
Comme je développe en suivant les principes de l'architecture hexagonale, j'ai des réflexes qui font que je vais très vite.
Je sais quoi abstraire, je sais aussi faire des choix pragmatiques pour aller vite sans sacrifier la testabilité.
Je fais ensuite quelques tests sur Postman et je check ma base de données pour vérifier que tout fonctionne bien 👍
Pourquoi est-ce que j'ai pas utilisé le TDD ici ?
Parce si je l'avais fait j'aurais simplement tester l'orchestration basique de cette logique, avec que des dépendances fake, et donc ça ne m'aurait rien appris, ni aidé à arriver vers la solution intrinsèquement technique.
Ici on est typiquement dans le genre de cas où je préfèrerais avoir un simple test e2e partant du controller, en utilisant l'emulateur Firestore (puisque c'est la base que j'utilise), et la vraie dépendance d'encodage du blurhash.
Si j'avais voulu être 100% rigoureux, il aurait fallu que je commence par écrire ce test en test-first, je me serais épargné le fait de tester à la main avec Postman et Firestore.
Maintenant il faut que je pense à écrire ce test après coup. Ce que l'on oublie souvent !
Le TDD est très efficace pour avancer par petites étapes, pour s'aider dans les algorithmes un minimum complexes.
Quand tu n'as pas ce niveau de complexité, un simple test d'intégration ou e2e "maîtrisé" (avec des dépendances instanciées uniquement pour le test par exemple) est suffisant.
Happy Coding !
PS : -50% sur tous les cursus Craft Academy sur https://craftacademy.fr pendant le mois d'août pour consoler celles et ceux qui ne peuvent pas se dorer la pilule au soleil !
Il faut en faire un post LinkedIn Pierre, c'est une discussion intéressante à avoir avec la communauté (ne serait-ce que pour briser le cliché "les crafteux c'est des extrémistes dogmatiques gnagnagna...")
Il faut en faire un post LinkedIn Pierre, c'est une discussion intéressante à avoir avec la communauté (ne serait-ce que pour briser le cliché "les crafteux c'est des extrémistes dogmatiques gnagnagna...")