Я считаю тестирование приватных методов плохой практикой. В данный момент, для меня это однозначное зло, но я не хочу быть "зашоренным". Поэтому, хочу задать вопрос....
Есть несколько источников, где хорошо объясняется почему. Коротко можно суммировать так:
тесты становятся слишком хрупкими
тесты не показывают все варианты работы с public-методами
тесты приватных методов тестируют то, КАК реализован внутри некий модель, вместо тестирования его поведения (требований)
появляются избыточные тесты на неиспользуемые приватные методы
Тут сразу отмечу, что если вдруг возникает реальная необходимость тестировать приватный метод, из-за его сложности, то этой явный знак того, что ему не место внутри этого класса. Надо вынести во внешний и тестировать как отдельный модуль.
И вопрос в том, какие у вас есть подходы к тестированию именно приватных методов? Придерживаетесь ли вы правила тестировать только public-методы, или это от чего-то зависит?