J'ai trouvé la discussion sur Do you test private method informative.
J'ai décidé que, dans certaines classes, je veux avoir des méthodes protégées, mais testez-les. Certaines de ces méthodes sont statiques et courtes. Étant donné que la plupart des méthodes publiques les utilisent, je pourrai probablement supprimer les tests en toute sécurité plus tard. Mais pour commencer avec une approche TDD et éviter le débogage, je veux vraiment les tester.
J'ai pensé à ce qui suit:
- Objet de méthode comme conseillé dans une réponse semble être exagéré pour cela.
- Commencez avec des méthodes publiques et lorsque la couverture de code est donnée par des tests de niveau supérieur, protégez-les et supprimez les tests.
- Hériter d'une classe avec une interface testable rendant les méthodes protégées publiques
Quelle est la meilleure pratique? Y a-t-il autre chose?
Il semble que JUnit change automatiquement les méthodes protégées pour qu'elles soient publiques, mais je ne l'ai pas approfondi. PHP ne permet pas cela via la réflexion .