Il m'arrive parfois de me retrouver à devoir faire une méthode privée dans une classe public juste à écrire des tests unitaires pour.
Habituellement, ce serait parce que la méthode contient une logique partagée entre d'autres méthodes dans la classe et c'est plus propre pour tester la logique sur son propre, ou une autre raison pourrait être possible, je veux tester logique utilisée dans synchrone fils sans avoir à vous soucier des problèmes de threading.
Faire d'autres gens à trouver eux-mêmes de faire cela, parce que je n'ai pas vraiment envie de le faire?? Personnellement, je pense que le bonus emportent sur les problèmes de la prise d'une méthode publique qui n'a pas vraiment de fournir tout service à l'extérieur de la classe...
Mise à JOUR
Merci pour les réponses tout le monde, semble avoir piqué l'intérêt des peuples. Je pense que le consensus général est un test qui devrait arriver via l'API publique que c'est la seule façon d'une classe ne sera jamais utilisé, et je suis d'accord avec cela. Les quelques cas que j'ai mentionnés ci-dessus où je voudrais le faire ci-dessus ont été rares cas, et j'ai pensé que les avantages de faire cela en valait la peine.
Je peux cependant voir chacuns point qu'il ne devrait jamais arriver. Et en y réfléchissant un peu plus je pense que changer votre code pour accueillir les tests est une mauvaise idée après tout je suppose que le test est un outil de soutien dans un sens et la modification d'un système de "soutien à un outil de soutien à la" si vous, est flagrante mauvaise pratique.