Writing tests in such an environment need to satisfy two rules:
- Writing specs should take the least amount of time possible.
- Each spec should test as much code as possible.
Now I’ve probably already lost half of you reading this. « Each spec should test as much as possible? How do you isolate failures?” Yeah, yeah, I agree, but at the end of the day, the only purpose of my testing suite is to make sure that the little CircleCI dot on Github turns red whenever I merge a breaking change.
C’est voir un seul côté du miroir, et au travers de lunettes de soleil.
Le test automatisé n’est pas là que pour l’intégration continue. Il est aussi là pour prouver que le code qu’on a produit correspond bien à ce qui est souhaité. Il est aussi là pendant le développement pour ne pas faire du pas à pas et du test manuel encore et encore jusqu’à ce que ça semble fonctionner. Il est là pour permettre à un tiers de comprendre et reproduire.
Je n’ai rien contre le fait d’avoir un scénario avec plusieurs assertions – qui est le fond du billet cité – mais avec des tests les plus gros possibles, on loupe la moitié des objectifs. Pire : on se créé une jolie dette technique pour quand on aura quelque chose à changer. Au lieu de retirer ou modifier quelques tests bien précis, on a un gros truc qui passe au rouge, qu’on va devoir modifier au risque d’oblitérer des cas limites.
Laisser un commentaire