기능 명세

입력 & 결과 도출 → 기능 명세 구체화 → 코드 반영


설계 과정을 지원하는 TDD

테스트 코드 작성

필요한 만큼 설계하기

테스트를 통과할 만큼만 코드 작성/ 필요할 것으로 예측해서 미리 코드 작성 X

ex. 만료일 계산

  1. 입력: 납부일, 납부액

    // 최초 설계: 2개 파라미터
    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);