: 테스트 코드를 먼저 만들고 실제 프로덕션 코드를 나중에 만드는 개발 방법.
1. red : 실패하는 테스트를 구현
2. green : 테스트가 성공하도록 프로덕션 코드를 구현
3. blue : 프로덕션 코드와 테스트 코드를 리팩토링
- 장점
1. 테스트 커버리지가 높아진다
: 테스트 코드를 까먹지 않게해줌
2. 오버 엔지니어링 방지
: 필요한 만큼만 코딩 가능
3. 설계에 대한 피드백이 빠르다
: 테스트 코드가 복잡하지 않게 하기 위해
설계도 복잡하지 않게 만들게 됨
: 코드 단위의 테스트(메서드 레벨)
단위 테스트는 테스트 코드가 목적 코드의 완전성을 입증해주기 때문에 테스트 코드 그 자체만으로 주요한 가치가 있다.
- 좋은 단위테스트 만들기(FIRST 법칙)
Fast 빠르게 : 테스트는 빨라야한다
Independent 독립적으로 : 테스트는 서로 의존하면 안된다
Repeatable 반복가능하게 : 어느 환경에서도 반복 가능해야한다
Self-validating 자가검증하는 : 테스트 결과 에 대해 성공 아니면 실패를 반환할 수 있어야 한다
Timely 적시에 : 항상 적시에(코드 구현 전에) 반드시 작성되어야 한다