То, что тест пройден, не означает, что вы закончили.
TDD лучше всего характеризуется Красный - Зеленый - Рефакторинг .
Проведение теста дает одну (две) линии ворот. Это только первый, минимальный набор требований. Настоящая цель - это та же цель, что и в процессе программирования псевдокодов или любой дисциплине проектирования.
Кроме того, TDD управляется тестированием, но это не означает, что ведет слепо тестированием. Вы можете повторять тестирование так же, как и код. Здесь нет места догматической приверженности тупому плану. Это ловкая техника - это означает адаптировать ее к вашей команде и вашим обстоятельствам.
Разработайте достаточно кода, чтобы иметь тестируемый интерфейс. Разработайте достаточно тестов, чтобы убедиться, что интерфейс будет работать. Разработайте еще несколько тестов и еще одну реализацию, пока не увидите необходимость рефакторинга.
Настоящая цель - хорошее программное обеспечение. TDD не может исключать "добро".
Техника не является ограничительным мандатом. Методы должны рассматриваться как опора, чтобы помочь вам создать хороший код. Если бы я был умнее, богаче и красивее, мне бы не понадобился TDD. Но так как я такой же тупой, мне нужен костыль, чтобы помочь мне в рефакторинге.