테스트 사전 지식
테스트 코드를 작성하기 전 기본 개념 이해하기
TDD, Red - Green - Refactor

1
RED
구현해야 할 메서드를 생성하지 않고 예상대로 흘러갈 수 있도록 골조만 작성한다.
이 때, 컴파일 에러가 나는 것을 두려워하지 말고 테스트 코드를 동작시켜 실패하는 것을 유도해야한다.
    @Test
    @DisplayName("주문 목록에 담긴 상품들의 총 금액을 계산할 수 있다.")
    void calculateTotalPrice() {
        // given
        CafeKiosk cafeKiosk = new CafeKiosk();
        Americano americano = new Americano();
        Latte latte = new Latte();
        cafeKiosk.add(americano);
        cafeKiosk.add(latte);
        // when
        int totalPrice = cafeKiosk.calculateTotalPrice();  // compile error!
        // then
        assertThat(totalPrice).isEqualTo(8500);
    }2
TDD의 핵심은 빠른 피드백을 통해 코드를 점진적으로 리팩터링 가능하다 는 것이다.
TDD의 선순환은 메서드 시그니처를 설계할 때 외부에서 주입 가능하도록 사고를 하기 비교적 쉽다.
결론적으로 TDD는 관점의 차이를 가져온 설계 방식이다.
테스트 코드는 문서이다
✍️ Display Name 을 섬세하게 작성하자

BDD, Given - When - Then
Last updated