RomanNumerals

CircleCI

Coverage Status

Quality Gate Status

Sources produite lors du kata vidéo

Sujet

Ecrire un convertisseur de nombres en chiffres romains. On peut trouver la spécification de l'écriture sur wikipédia

Objectifs

Expérimenter la démarche du TDD (test driven developpement)

Citations

"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"

Test Unitaire

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

Vocabulaire

  • Tests contravariance Couplage comportement vs couplage structure

  • Tests sociables ou non

-- sociable => école classique, Détroit

-- non sociable => école mockist, London

Martin Fowler

Cycle TDD

Red -> Green -> Refactor

Make it work, make it right, make it fast Kent Beck

Cycles

Minute par minute

  • Ecriture de code motivé par design par les besoins exprimés par les tests

Dizaine de minutes

  • Tests de plus en plus spécifiques
  • Code de plus en plus générique

Heure par heure

  • Frontières du domaine
  • Clean architecture

Transformations autorisées

UncleBob

Nécessaire pour construire un chemin d'étapes en baby steps