Когда у меня есть частные методы в классе, которые достаточно сложны, и я чувствую необходимость непосредственно тестировать частные методы, это пахнет кодом: мой класс слишком сложен.
Мой обычный подход к решению таких проблем состоит в том, чтобы выявить новый класс, который содержит интересные биты. Часто этот метод и поля, с которыми он взаимодействует, и, возможно, другой метод или два, могут быть извлечены в новый класс.
Новый класс представляет эти методы как «публичные», поэтому они доступны для модульного тестирования. Новые и старые классы теперь стали проще, чем исходный, что очень удобно для меня (мне нужно, чтобы все было просто, или я заблудился!).
Обратите внимание, что я не предлагаю людям создавать классы, не используя свой мозг! Суть в том, чтобы использовать силы модульного тестирования, чтобы помочь вам найти хорошие новые классы.