TDD의 핵심은 하 번에 한 가지만 하는 것
설정(Setup), 처리(Exercise), 어설션(Assert)은 단위 테스트의 전형적인 구조이다.
같은 코드가 세 번 나오면 중복을 제거해야 한다.
여러 기능을 하는 테스트는 나누는 것이 좋다
Regression
동작하던 애플리케이션 처리가 새로 추가된 코드에 의해 망가지는 것
Unexpected failuer (예상치 못한 실패)
생각하지 못한 방법으로 테스트가 실패하는 것. 코드 수정이 필요한 경우이다.
Red/Green/Refactor
TDD처리를 기술하는 다른 방법이다. 테스트를 작성해서 실패하는지 보고(Red), 코드를 수정해서 통과하게 한다(Green). 그리고 리팩터링해서 코드를 개선한다.
Triangulation
기존 코드에 구체적인 테스트 케이스를 추가해서 일반화 한 처리를 정당화 하는 것
Three strikes and refactor
세 번째 동일한 코드가 나오면 중복을 제거해야 한다.