TDD의 세가지 법칙
- 실패 테스트가 존재할때만 production code를 작성한다.
- 실패를 나타낼 수 있는 충분한 테스트만 작성해라.
- 테스트를 통과할 수 있을 정도의 production code만 작성해라
TDD 절차
원칙 & 팁
- 가장 쉬운 테스트부터 작성한다. 계산기라면 더하기부터!
- 테스트를 통과할 수 있게하는 과정은 진짜 간단하게만 구현하는 방식을 사용한다.
- 테스트가 점점 구체화될수록 코드는 점점 일반화된다. → 모든 테스트를 커버할 수 있도록 일반화된다는 뜻
TDD의 이점
- 디버깅 타임을 줄일 수 있다.
- 테스트가 곧 설계 문서가 될 수 있다.
- 테스트를 먼저 작성하면 production code가 테스트 가능해진다.
- 테스트가 가능한 코드라는건 decoupling 되어있는 코드라는 뜻이다.
- 테스트를 먼저 작성한 것만으로도 자연스럽게 좋은 설계의 코드가 만들어진다.
- 테스트가 있으면 코드 변경에 대한 두려움이 줄어든다 → 회귀버그 방지 가능
- 테스트는 리팩토링을 용이하게 만들고 따라서 좋은 품질의 코드를 만들어낼 수 있다.
- 테스트가 없는 좋은 설계의 코드여도 시간이 지나면 이 놈은 품질이 안좋아질 수 밖에 없다.
- 개발 후 테스트를 만든다고? 진짜 니가 그럴까? 개발 후 테스트는 재미도 엄청 없다.
실습