- 리팩터링을 제대로 하려면 견고한 테스트 스위트가 뒷받침이 되어야 한다.
- 모든 테스트를 완전히 자동화하고 그 결과까지 스스로 검사하게 만들자.
- 기능을 추가할 때는 테스트부터 작성하자.
- 처음에는 통과하지 못할 테스트를 작성.
- 테스트를 통과하게끔 코드를 작성.
- 결과 코드를 최대한 깔끔하게 리팩터링.
- 위의 과정을 반복
- 실패해야할 상황에서는 반드시 실패하게 만들자.
- 자주 테스트하라. 작성 중인 코드는 최소한 몇 분 간격으로 테스트, 적어도 하루에 한 번은 전체 테스트.
- 단순한 코드는 테스트할 필요가 없다. 위험 요인을 중심으로 작성하라!
- 테스트를 너무 많이 작성하게 되면 의욕이 떨어질 수 있는 위험이 있다. 위험한 부분에 집중을 하여 작성하자.
- 저자는 테스트 스위트부터 갖춘 뒤 리팩터링을 하지만, 리팩터링을 하는 동안에도 계속해서 테스트를 추가한다.
- 버그 리포트를 받으면 가장 먼저 그 버그를 드러내는 단위 테스트부터 작성하자.