Это не падение TDD, а скорее подход к тестированию, который считает, что вам нужно тестировать каждое свойство и каждый метод. На самом деле, вам не следует беспокоиться о частных методах при тестировании, потому что они должны существовать только для облегчения некоторой общедоступной части API.
Никогда не меняйте что-либо с частного на общедоступное для тестирования!
Вы должны пытаться проверить только публично видимое поведение. Остальные детали реализации, и вы специально хотите избежать их тестирования. TDD предназначен для предоставления вам набора тестов, которые позволят вам легко изменять детали реализации, не нарушая тесты (изменяя поведение).
Допустим, у меня есть тип: MyClass
, и я хочу проверить метод DoStuff
. Все, что меня волнует, это то, что метод DoStuff
делает что-то значимое и возвращает ожидаемые результаты. Для достижения этой цели может потребоваться сотня частных методов, но мне все равно, как потребителю этого метода.