Backend
home
🔍

7. 테스트 케이스 세분화하기

생성일
2025/01/24 05:52
태그

요구사항

한 종류의 음료 여러 잔을 한 번에 담는 기능

테스트 케이스 세분화하기

질문하기: 암묵적이거나 아직 드러나지 않은 요구사항이 있는가?
세분화하기
해피 케이스
예외 케이스

테스트 코드 작성 예제

package sample.cafekiosk.unit; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import sample.cafekiosk.unit.beverage.Americano; import sample.cafekiosk.unit.beverage.Latte; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; class CafeKioskTest { @DisplayName("카페 키오스크 테스트") @Test public void add_manual_test() { CafeKiosk cafeKiosk = new CafeKiosk(); cafeKiosk.add(new Americano()); System.out.println(">>> 담긴 음료 수 : " + cafeKiosk.getBeverages().size()); System.out.println(">>> 담긴 음료 : " + cafeKiosk.getBeverages().get(0).getName()); } @DisplayName("add test") @Test public void add() { CafeKiosk cafeKiosk = new CafeKiosk(); cafeKiosk.add(new Americano()); assertThat(cafeKiosk.getBeverages()).hasSize(1); assertThat(cafeKiosk.getBeverages().get(0).getName()).isEqualTo("아메리카노"); } @DisplayName("add 여러 잔 test") @Test public 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); } // 예외 케이스 @DisplayName("예외 add zero test") @Test public void addZeroBeverages() { CafeKiosk cafeKiosk = new CafeKiosk(); Americano americano = new Americano(); // 예외 발생 처리 assertThatThrownBy(() -> cafeKiosk.add(americano, 0)) .isInstanceOf(IllegalArgumentException.class) .hasMessage("음료는 1잔 이상 주문하실 수 있습니다."); } @DisplayName("remove test") @Test public void remove() { CafeKiosk cafeKiosk = new CafeKiosk(); Americano americano = new Americano(); cafeKiosk.add(americano); assertThat(cafeKiosk.getBeverages()).hasSize(1); cafeKiosk.remove(americano); assertThat(cafeKiosk.getBeverages()).isEmpty(); } @DisplayName("clear test") @Test public void clear() { CafeKiosk cafeKiosk = new CafeKiosk(); Americano americano = new Americano(); Latte latte = new Latte(); cafeKiosk.add(americano); cafeKiosk.add(latte); assertThat(cafeKiosk.getBeverages()).hasSize(2); cafeKiosk.clear(); assertThat(cafeKiosk.getBeverages()).isEmpty(); } }
Java
복사