Odeurs de couplage.
Logique de test dans le code de production
Le code de production contient de la logique, des branches ou des membres qui n'existent que pour faciliter les tests, brouillant la frontière entre ce qui est livré et ce qui est seulement testé.
Réservé aux testeurs
Le code de production contient des méthodes, des accesseurs d’état ou des joints qui n’existent que pour être utilisés par les tests, polluant la véritable API et incitant à des tests qui vérifient les détails internes plutôt que le comportement.
Code difficile à tester
Du code de production dont la conception (couplage fort, dépendances cachées, état global, IO non déterministe ou interfaces uniquement asynchrones) force les tests à des contorsions maladroites, ou rend une unité tout simplement impossible à exercer en isolation.