목차

개요

이번 포스팅에서는 몇 가지의 TDD 트릭, 몇 가지의 디자인 패턴, 몇 가지의 리팩토링을 소개하며

TDD를 좀 더 유연하고 잘 사용할 수 있도록 돕는 기술들에 대해 소개한다.

1. 빨간 막대 패턴


테스트를 언제 어디에 작성할 것인지와 언제 테스트 작성을 멈출지에 대한 내용.

1-1. 한 단계 테스트

내가 무엇을 테스트할 지 어떤 기준으로 선택을 할 것인가?

<aside> 💡 최종 목표로 한 단계 진전시켜줄 수 있는 테스트

</aside>

사실 무엇을 테스트 할 지에 대한 선택에 정답은 없다. 사람마다 생각할 수 있는 바운더리가 다르고, 경험에따라 한 단계의 크기가 다를 수 있다. 내가 자동차라는 객체에서 전진, 후진, 좌회전, 우회전 4개의 테스트를 생각했다고 할 때 나보다 풍부한 경험을 가진 개발자는 여기서 기어 변속, 네비게이션 변경, 주유하기, 다른 기름 넣어 주유하기 등 더 많은 테스트를 떠올릴 수 있을 것이다.

책에서는 뻔하지는 않지만 (1+1은 2이다! 라는걸 굳이 증명해야할까? 생각해볼 주제다.), 구현할 수 있다는 확신이 드는 테스트말이다.

상향식(bottom-up) ? 하향식(top-down) ?

전체적인 기능에서 하나의 간단한 사례를 시작으로 테스트를 작성하고 이 테스트를 통해 커져가는 프로그램은 하향식(top-down)으로 작성된 것으로 볼 수 있고, 반대로 전체의 작은 한 조각을 나타내는 테스트에서 시작해 조금씩 붙여가는 테스트를 작성한다면, 이는 상향식(bottom-up)으로 생각할 수 있다. 하지만, 이는 둘 다 TDD 프로세스를 효과적으로 설명할 수 없는데, 이와 같은 수직적 메타포는 프로그램이 시간이 흐르면서 어떻게 변해가는가에 대한 시각화일 뿐이다.

성장(growth)