TDD(Test-driven Development)란?

기능을 검증하는 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행한다.

하나의 테스트 코드를 작성하기 위해서 다음과 같은 것들을 고려해야 한다.

  1. 메서드 이름
  2. 메서드의 파라미터 개수, 파라미터 타입, 반환값
  3. 정적 메서드 및 인스턴스 메서드
  4. 메서드를 제공할 클래스 이름

테스트 코드도 코드이므로 중복을 제거한다. 그러나 무턱대고 제거하는 것이 아닌 중복을 제거한 뒤에도 테스트 코드의 가독성이 떨어지지 않고 수정이 용이한 경우에만 중복을 제거해야 한다. 중복을 제거한 뒤에 오히려 테스트 코드 관리가 어려워진다면 제거했던 중복을 되돌려야 한다.

TDD 흐름

테스트 → 코딩 → 리팩토링 → 테스트 → ...

TDD 는 테스트를 먼저 작성하고 테스트를 통과시킬 만큼 코드를 작성하고 리팩토링을 마무리하는 과정을 반복한다.

빠른 피드백

TDD 가 주는 이점은 코드 수정에 대한 피드백이 빠르다는 점이다. 새로운 코드를 추가하거나 기존 코드를 수정하면 테스트를 돌려서 해당 코드가 올바른지 바로 확인할 수 있다. 이는 잘못된 코드가 배포되는 것을 방지한다.