효습

Chapter 04. TDD 기능 명세 , 설계 본문

책/테스트 주도 개발 시작하기

Chapter 04. TDD 기능 명세 , 설계

효효효효 2025. 4. 13. 22:37

 

  • 설계는 기능 명세로부터 시작한다
  • 기능 명세를 구체화하는 동안 입력과 결과를 도출하고 이렇게 도출한 기능 명세를 코드에 반영한다
    • 기능의 이름 , 파라미터 , 리턴 타입 지정

 

 

설계 과정을 지원하는 TDD

테스트 코드를 만들기 위해서는

  • 테스트할 기능을 실행
  • 실행 결과를 검증

→ 테스트 대상이 되는 클래스와 메서드의 이름을 결정해야한다.

→ 메서드를 실행할 때 사용할 인자의 타입과 개수를 결정해야한다.

 

 

설계 과정

  1. 클래스 이름
  2. 메서드 이름
  3. 메서드 파라미터
  4. 실행 결과

TDD 자체가 설계는 아니지만 , TDD를 하다 보면 테스트 코드를 작성하는 과정에서 일부 설계를 진행하게 된다.

 

 

필요한 만큼 설계하기

  • TDD는 테스트를 통과할 만큼만 코드를 작성한다
  • 필요할 것으로 예측해서 미리 코드를 만들지 않는다
  • TDD로 개발하는 코드 비율이 높아질수록 지금 시점에서 필요한 설계만 코드에 반영할 가능성이 커짐
  1. 최초 설계는 두 개의 파라미터를 사용
LocalDate expiryDate = cal.calculateExpiryDate(billingDate , payAmount);

2. 테스트를 진행하는 과정에서 필요한 만큼 설계 변경

Paydata payData = PayData.builder()
  .firstBillingDate(LocalDate.of(2019.1.31))
  .billingDate(LocalDate.of(2019.2.28))
  .payAmount(10_000)
  .build();


LocalDate expiryDate = cal.calculateExpiryDate(payData);

 

 

기능 명세 구체화

  • 모호한 상황을 만나면 이를 구체적인 예시로 바꾸어 테스트 코드에 반영

 

 

 

 

' > 테스트 주도 개발 시작하기' 카테고리의 다른 글

Chapter 03. 테스트 코드 작성 순서  (2) 2024.09.30
Chapter 02. TDD 시작  (0) 2024.09.09