<aside> 1️⃣ 단위테스트란?

</aside>

<aside> 2️⃣ JUnit5

</aside>

<aside> 3️⃣ AssertJ

</aside>

<aside> 4️⃣

테스트 케이스 세분화

</aside>

@Test
void addSeveralBeverages() {
    CafeKiosk cafeKiosk = new CafeKiosk();
    Americano americano = new Americano();

    // 해피테스트
    cafeKiosk.add(americano, 2);

    assertThat(cafeKiosk.getBeverages().get(0)).isEqualTo(americano);
    assertThat(cafeKiosk.getBeverages().get(1)).isEqualTo(americano);
}
@Test
void addZeroBeverages() {
    CafeKiosk cafeKiosk = new CafeKiosk();
    Americano americano = new Americano();

    // 예외테스트
    assertThatThrownBy(() -> cafeKiosk.add(americano, 0))
            .isInstanceOf(IllegalArgumentException.class)
            .hasMessage("음료는 1잔 이상 주문하실 수 있습니다.");

}

<aside> 5️⃣ 테스트하기 어려운 영역을 구분하고 분리하기

</aside>