Я нашел дискуссию на тестовом личном методе информативным.
Я решил, что в некоторых классах я хочу иметь защищенные методы, но проверять их. Некоторые из этих методов являются статическими и короткими. Поскольку большинство общедоступных методов используют их, я, вероятно, смогу безопасно удалить тесты позже. Но для начала с подхода TDD и избежания отладки я действительно хочу их протестировать.
Я подумал о следующем:
- Объект метода, как было рекомендовано в ответе, кажется для этого излишним.
- Начните с общедоступных методов, и когда охват кода дается с помощью тестов более высокого уровня, включите их и удалите тесты.
- Наследовать класс с проверяемым интерфейсом, защищая общедоступные методы.
Какая практика? Есть ли что-нибудь еще?
Кажется, что JUnit автоматически изменяет защищенные методы, чтобы быть общедоступными, но у меня не было более глубокого взгляда на него. PHP не позволяет это через reflection.