Je lis The Art of Unit Testing par Roy Osherove. Je suis à la section 7.2 Écriture de tests maintenables où l'auteur a cette note sur l'odeur de code:
REMARQUE: lorsque vous refactorisez l'état interne pour qu'il soit visible par un test externe, cela peut-il être considéré comme une odeur de code (signe que quelque chose ne va pas dans la conception ou la logique du code)? Ce n'est pas une odeur de code lorsque vous refactorisez pour exposer des collaborateurs. C'est une odeur de code si vous refactorisez et qu'il n'y a pas de collaborateurs (vous n'avez donc pas besoin de stub ou de se moquer de quoi que ce soit).
EDIT : Ce que l'auteur entend par «collaborateurs», ce sont les dépendances. Certains de ses exemples de dépendances sont des classes qui accèdent à une base de données ou qui accèdent au système de fichiers du système d'exploitation. Voici où il définit le talon et commence à utiliser le mot collaborateur:
Un stub est un remplacement contrôlable d'une dépendance (ou d'un collaborateur ) existante dans le système.
L'auteur n'a pas d'exemple de cette odeur de code et j'ai du mal à comprendre / imaginer à quoi cela ressemblerait. Quelqu'un peut-il expliquer un peu plus cela et peut-être fournir un exemple concret?