TDD에 대한 오해와 진실 TDD 이야기
TDD 때문에 좌절을 경험한 개발자에게 들려주는 TDD 이야기!
테스트 주도 개발(Test-Driven Development)이라 불리는 TDD는 개발자 사이에서 많은 이슈가 되었고, 현재도 관심을 많이 받고 있다. 하지만 TDD의 유명세에도 불구하고, TDD를 실제로 적용해보거나 학습해보려는 관심과 호기심은 부족하다. 아마도 TDD에 대한 잘못된 지식이나 고정관념, ‘테스트 코드를 먼저 만든다’는, 지금까지 체험하지 못한 개념 때문일 것이다. TDD가 관심을 받는 데는 분명 그만한 이유가 있다. 이 책의 저자는 TDD를 실무에 도입하면서 겪었던 좌절과 TDD에 대한 오해, 그리고 이를 해결해 나가면서 배운 것들을 담았다. 이를 통해서 TDD를 실무에 어떻게 적용할 수 있는지와 실무 팁을 배울 수 있다. 또한, TDD가 어렵고 복잡하다는 오해를 풀고, 왜 TDD를 사용해야 하는지 알게 될 것이다.
1장. 반가워, TDD
__1.1 TDD, 어디에 쓰는가?
__1.2 지금 TDD가 필요하다
2장. TDD에 관한 오해와 진실
__2.1 (오해 1) TDD는 비용이 더 들고, 결국 개발 속도를 저하시킨다
__2.2 (오해 2) 코드 커버리지가 높으면 좋은 코드다
__2.3 (오해 3) 진압보다 예방에 소비되는 비용이 높다
__2.4 (진실 1) TDD != Unit Testing
__2.5 (진실 2) TDD는 설계 개선에 도움을 준다
3장. 현장 이야기
__3.1 Mock 객체, 언제 그리고 어떻게 사용할까?
__3.2 Fixture, 어떻게 사용해야 할까?
__3.3 TDD와 디자인 패턴의 아름다운 동행
__3.4 private 메서드 그리고 단위 테스트
__3.5 만지기 싫은 레거시 코드, TDD가 해법이다
4장. TDD, 올바른 사용과 사용 습관
__4.1 Top-Down으로 방향을 잡고, Bottom-Up으로 구현에 집중하자
__4.2 바보 단계 거치기
__4.3 시나리오 구상하기
__4.4 TDD의 단위 테스트를 문서화하자
Appendix 마틴 파울러의 “Mock은 Stub이 아니다.”
__Mock과 Stub의 구분을 넘어서
__Driving TDD(TDD 진행 방식의 차이)
__Fixture Setup(Fixture, 얼마나 어떻게 사용하는가?)
__Isolation(단위 테스트 격리에 대한 관점의 차이)
__Coupling Tests to Implementations(단위 테스트와 구현체의 결합도에 따른 영향)
__Design Style(테스트가 설계에 미치는 영향)
__다양한 시각, 점진적 사용, 그리고 성장