Ich fand die Diskussion über Testen Sie private Methoden informativ.
Ich habe beschlossen, dass ich in einigen Klassen geschützte Methoden haben möchte, aber sie testen. Einige dieser Methoden sind statisch und kurz. Da die meisten öffentlichen Methoden sie verwenden, kann ich die Tests wahrscheinlich später sicher entfernen. Aber um mit einem TDD-Ansatz zu beginnen und das Debuggen zu vermeiden, möchte ich sie wirklich testen.
Ich dachte an Folgendes:
- Das in einer Antwort empfohlene Methodenobjekt scheint dafür übertrieben zu sein.
- Beginnen Sie mit öffentlichen Methoden. Wenn die Codeabdeckung durch Tests höherer Ebene gegeben ist, schalten Sie sie geschützt aus und entfernen Sie die Tests.
- Erben Sie eine Klasse mit einer testbaren Schnittstelle, die geschützte Methoden öffentlich macht
Welches ist die beste Vorgehensweise? Gibt es noch etwas?
Es scheint, dass JUnit geschützte Methoden automatisch ändert, um öffentlich zu sein, aber ich habe es mir nicht genauer angesehen. PHP erlaubt dies nicht durch Reflexion .