BDD
롤프로게이머 BDD
는.. 아니다.
- TDD에서 파생된 개발방법
- 함수 단위의 테스트에 집중하기보다, 시나리오에 기반한 테스트케이스(TC) 자체에 집중하여 테스트한다.
- 개발자가 아닌 사람이 봐도 이해할 수 있을 정도의 추상화 수준(레벨)을 권장
GIVEN / WHEN / THEN
- Given: 시나리오 진행에 필요한 모든 준비 과정 (객체, 값, 상태 등)
- When: 시나리오 행동 진행
- Then: 시나리오 진행에 대한 결과 명시, 검증
어떤 환경에서(Given)
어떤 행동을 진행했을 때(When)
어떤 상태 변화가 일어안다(Then)
-> DisplayName에 명확하게 작성할 수 있다.
- given / when / then을 주석으로 달아주었다.!
@DisplayName("주문 목록에 담긴 상품들의 총 금액을 계산할 수 있다.")
@Test
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();
// then
assertThat(totalPrice).isEqualTo(8500);
}
인텔리제이에서 제공하는 기능으로 쉽게 주석을 달자.
- Java 클릭
- + -> 클릭 후 아래 처럼 작성
마지막으로 Define을 누른 후 Java를 체크하면
@DisplayName("")
@Test
void test() {
// given
// when
// then
}
이렇게 나오게 된다.! 템플릿 완성
'Spring관련 기술 > 테스트코드' 카테고리의 다른 글
Persistence Layer 테스트 (1) | 2023.12.14 |
---|---|
Spring & JPA 기반 테스트 (0) | 2023.12.13 |
@DisplayName (0) | 2023.12.12 |
Test Driven Development (0) | 2023.12.11 |
테스트하기 어려운 영역을 분리하기 (0) | 2023.12.10 |