4장 테스트 구축하기

리팩터링을 제대로 하려면 불가피하게 저지르는 실수를 잡아주는 견고한 테스트 스위트 (test suite)가 뒷받침돼야 한다.

좋은 테스트 작성하는 일을 개발 효율은 높인다.

4.1 자가 테스트 코드의 가치


프로그래머들의 실제 코드작성 시간의 비중은 크지 않다.

→ 상황 파악 / 설계 고민 / 특히 디버깅에 큰 시간을 사용한다.

⇒ 버그 수정은 대체로 금방 끝나지만, 버그를 찾는 여정에 수많은 시간이 소요된다.

— 1992년 OOPSLA 컨퍼런스에서 클래스마다 테스트 코드를 갖춰야 한다는 내용이 등장 하였다. 출력하고자 하는 값이 예상값이 맞으면 ok 출력하는 식

모든 테스트를 자동화하고 검사까지 스스로 검사하게 만들어라.

장점

  1. 모든 테스트를 컴파일 만큼 쉽게 만드는 방법
  2. 가장 최근 테스트로 잡은 버그를 다시 살려보면 테스트에 걸려 눈에 확 드러난다.