Я согласен со всеми остальными: ответ на ваш вопрос «нет».
Действительно, вы абсолютно правы в своем подходе и своих мыслях, особенно в отношении покрытия кода.
Я бы также добавил, что вопрос (и ответ «нет») также относится к открытым методам, которые вы можете ввести в классы.
- Если вы добавляете методы (общедоступные / защищенные или приватные), поскольку они не проходят тестовый проход, то вы более или менее достигли цели TDD.
- Если вы добавляете методы (публичные / защищенные или приватные), потому что вы просто решаете нарушить TDD, то охват кода должен их уловить, и вы сможете улучшить свой процесс.
Кроме того, для C ++ (и я должен думать только для C ++) я реализую интерфейсы, используя только закрытые методы, чтобы указать, что класс должен использоваться только через интерфейс, который он реализует. Это останавливает меня по ошибке, вызывая новые методы, добавленные в мою реализацию из моих тестов