TDD란?
- 테스트 먼저 개발은 그 다음
- 설계 > 테트스 > 코딩
- tdd 과정
-red: 테스트 실패
- 장점
- 자연스럽게 테스트커버리지가 높아진다.
- 오버엔지니어링 방지
- 설계에 대한 피드백이 빠르다.
- 테스트를 통해 피드백이 가능하므로
- 어렵게 짤 수록 테스트가 어려워지기 때문에 쉽게 알 수 있음
TDD는 설계 방식인가?
- 설계 방법론이라고 하기는 어렵다.
- 전적으로 설계를 TDD에만 맡기면 테스트에만 좋은 프로그램이 만들어짐
TDD를 실패하는 사람들의 특징
- 인터페이스가 아니라 인스턴스를 테스트
- 위 때문에 테스트 케이스와 인스턴스 간의 결합력이 높아짐
- 테스트나 인스턴스를 리팩토링하면 둘 중 하나는 계속 깨짐
단위테스트의 장점
- 문제점의 발견이 쉬움
- 변경이 쉬움
- 품질 향상
- 코드의 문서화가 가능
좋은 단위테스트의 법칙(FIRST)
- Fast빠르다.
- Independent독립적
- Repeatable반복 가능
- Self-Vaildating자가 검증
- Timely적시에