내가 TDD를 처음 시도 할 때 이것은 다소 어리석은 질문 일 수 있습니다. 나는 그것이 가져 오는 자신감과 일반적으로 내 코드의 더 나은 구조를 좋아했지만 한 클래스 장난감 예제보다 큰 것에 적용하기 시작했을 때 어려움에 빠졌습니다.
일종의 라이브러리를 작성한다고 가정하십시오. 해야 할 일을 알고 있으며, 구현 방식에 대한 일반적인 방법을 알고 있지만 (아키텍처 방식), 코딩 할 때 공개 API를 변경해야한다는 것을 "발견"합니다. 아마도이 개인 메소드를 전략 패턴으로 변환해야하고 (이제 테스트에서 모의 전략을 전달해야 함) 아마도 여기저기서 책임을 놓치고 기존 클래스를 분할했을 것입니다.
기존 코드를 개선 할 때는 TDD가 적합하지만, 처음부터 모든 것을 작성할 때 테스트를 작성하는 API는 큰 디자인을하지 않으면 약간 "흐리게"나타납니다. 서명 (및 해당 부분의 동작)이 변경된 메소드에 대해 이미 30 개의 테스트를 수행 한 경우 어떻게합니까? 그것이 합쳐지면 많은 테스트가 필요합니다.