Sources produite lors du kata vidéo
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