Dyskusja na temat Czy testujesz metodę prywatną ma charakter informacyjny.
Zdecydowałem, że na niektórych zajęciach chcę mieć metody chronione, ale je przetestuj. Niektóre z tych metod są statyczne i krótkie. Ponieważ większość publicznych metod korzysta z nich, prawdopodobnie będę mógł później bezpiecznie usunąć testy. Ale aby zacząć od podejścia TDD i uniknąć debugowania, naprawdę chcę je przetestować.
Myślałem o następujących kwestiach:
- Metoda Obiekt wskazana w odpowiedzi wydaje się być nadmierną umiejętnością w tym zakresie.
- Zacznij od metod publicznych, a gdy kod zostanie objęty testami wyższego poziomu, włącz ich ochronę i usuń testy.
- Dziedzicz klasę z testowalnym interfejsem upubliczniającym chronione metody
Jaka jest najlepsza praktyka? Czy jest coś jeszcze?
Wygląda na to, że JUnit automatycznie zmienia chronione metody na publiczne, ale nie przyjrzałem się temu głębiej. PHP nie pozwala na to poprzez refleksję .