Sources produite lors du kata vidéo https://www.youtube.com/watch?v=uWlSvLV5ygI
Un article plus complet https://meritis.fr/programmation/pratique-du-tdd-comment-convertir-des-chiffres-en-nombres-romains/
Ecrire un convertisseur de nombres en chiffres romains. On peut trouver la spécification de l'écriture sur wikipédia
Expérimenter la démarche du TDD (test driven developpement)
"Il y a une minute, tous les codes des participants fonctionnaient"
"Tous les codes produits sont testables par définition"
"On a une documentation exécutable"
"On a un harnais de sécurité pour le refactoring"
F.I.R.S.T
F Fast (rapide)
I Independant (ou Isolated isolé) lien avec 3A (Arrange, Act, Assert)
R Repeatable ( répétable, ne dépend pas de l'environnement )
S Self validating ( auto - validant)
T Timely ( au bon moment, juste après ou avant le code)
Un test n'est pas un Test Unitaire si:
- Interroge la base de données
- Discute avec le réseau
- Utilise le système de fichiers
- est non parallélisable
- demande une préparation de l'environnement avant exécution
-
Tests contravariance Couplage comportement vs couplage structure
-
Tests sociables ou non
-- sociable => école classique, Détroit
-- non sociable => école mockist, London
Martin Fowler
Red -> Green -> Refactor
Make it work, make it right, make it fast Kent Beck
- Ecriture de code motivé par design par les besoins exprimés par les tests
- Tests de plus en plus spécifiques
- Code de plus en plus générique
- Frontières du domaine
- Clean architecture
Nécessaire pour construire un chemin d'étapes en baby steps