Test ‐ 더 나은 테스트를 위한 Appendix - dnwls16071/Backend_Summary GitHub Wiki
📚 @ParameterizedTest
- 왜 쓰는가? → 코드 중복 제거 : 같은 테스트 로직을 다양한 입력값으로 여러 번 테스트할 때, 테스트 코드를 반복해서 작성하지 않고 한 번에 처리
- 언제 쓰는가? → 입력 값에 따라 결과가 달라지는 로직 테스트 시, 여러 케이스에 대해 반복적으로 검증이 필요한 경우
@ParameterizedTest
@ValueSource(strings = {"apple", "banana", "orange"})
void testIsNotEmpty(String input) {
assertFalse(input.isEmpty());
}
📚 테스트 비용을 줄이기
@SpringBootTest 어노테이션은 스프링 컨테이너가 생성되고 그 안에서 스프링 빈들이 전부 초기화되는 방식으로 테스트가 진행된다.
- 이렇게 되면 전체 스프링 빈들이 모두 초기화될 때까지 기다려야 하기 때문에 거대한 서비스일수록 리소스 측면에서 부담이 될 수 있다.
@ActiveProfiles를 활용해 특정 프로필 별로 테스트를 수행해주는 것이 좋다.