DisplayName을 섬세하게 작성하자
- 간단하게 적어준다(X)
@DisplayName("음료 1개 추가 테스트")
@Test
void add() {
CafeKiosk cafeKiosk = new CafeKiosk();
cafeKiosk.add(new Americano());
assertThat(cafeKiosk.getBeverages()).hasSize(1);
assertThat(cafeKiosk.getBeverages().get(0).getName()).isEqualTo("아메리카노");
}
- 상세하게 적어준다.(O)
@DisplayName("음료 1개를 추가하면 주문 목록에 담긴다.")
@Test
void add() {
CafeKiosk cafeKiosk = new CafeKiosk();
cafeKiosk.add(new Americano());
assertThat(cafeKiosk.getBeverages()).hasSize(1);
assertThat(cafeKiosk.getBeverages().get(0).getName()).isEqualTo("아메리카노");
}
처음 회사에 입사했는데, 테스트코드를 살펴보니 XXX테스트 이렇게 되어 있으면 이해하기 어려울 수 있다.
DisplayName을 작성할 때 유의할 점
- 음료 1개 추가 테스트 -> "~테스트" 지양하기
- 음료를 1개 추가할 수 있다. (O)
>> 명사의 나열보다 문장으로
- A이면 B이다.
- A이면 B가 아니고 C다.
더보기
어떤 상태가 주어졌을 때, 어떤 행위를 가했고, 어떤 상태 변화가 있었다라는 결과까지 명시를 해줄 수 있기 때문에
꼭 문장 형태로 작성하는 노력이 필요하다.
- 음료를 1개 추가할 수 있다.
- 음료를 1개 추가하면 주문 목록에 담긴다. (O)
>> 테스트 행위에 대한 결과까지 기술하기
- 특정 시간 이전에 주문을 생성하면 실패한다.
- 영업 시작 시간 이전에는 주문을 생성할 수 없다. (O)
>> 도메인 용어를 사용하여 한층 추상화된 내용을 담기 - 메서드 자체의 관점보다는 도메인 정책 관점으로
>> 테스트의 형상을 중점으로 기술하지 말 것 - "실패한다"는 테스트와 무관
'Spring관련 기술 > 테스트코드' 카테고리의 다른 글
Spring & JPA 기반 테스트 (0) | 2023.12.13 |
---|---|
BDD, Behavior Driven Development (0) | 2023.12.12 |
Test Driven Development (0) | 2023.12.11 |
테스트하기 어려운 영역을 분리하기 (0) | 2023.12.10 |
테스트 케이스 세분화하기 (0) | 2023.12.10 |