Spring Boot

Spring Boot 테스트

Spring Boot 테스트: @SpringBootTest, @WebMvcTest, @DataJpaTest, MockMvc, TestRestTemplate, 테스트 슬라이스

30 면접 질문·
Mid-Level
1

통합 테스트에서 Spring Boot의 전체 컨텍스트를 로드하려면 어떤 어노테이션을 사용합니까?

답변

@SpringBootTest는 모든 bean과 자동 구성을 포함하여 애플리케이션의 전체 컨텍스트를 로드합니다. 이 어노테이션은 애플리케이션 전체가 필요한 통합 테스트에 사용됩니다. @WebMvcTest와 @DataJpaTest는 컨텍스트의 일부만 로드하며(테스트 슬라이싱), @ContextConfiguration은 컨텍스트를 수동으로 구성하기 위한 더 낮은 수준의 어노테이션입니다(더 복잡함).

2

Spring Boot에서 테스트 슬라이싱(test slicing)이란 무엇입니까?

답변

테스트 슬라이싱은 테스트 속도를 높이기 위해 Spring 컨텍스트의 특정 부분만 로드하는 것을 의미합니다. 예를 들어 @WebMvcTest는 web 컴포넌트(controller, filter)만 로드하고, @DataJpaTest는 JPA repository만 로드합니다. 이를 통해 시작 시간이 줄어들고 불필요한 bean 로딩을 피해 테스트 성능이 향상됩니다.

3

Spring MVC controller만 테스트하려면 어떤 어노테이션을 사용합니까?

답변

@WebMvcTest는 Spring MVC controller를 테스트하기 위해 특별히 설계되었습니다. 이 어노테이션은 web 컴포넌트(controller, @ControllerAdvice, filter, interceptor)만 로드하고 MockMvc를 자동으로 구성합니다. @SpringBootTest는 전체 컨텍스트를 로드하며(단일 controller 테스트에는 불필요), @DataJpaTest는 repository용, @RestClientTest는 HTTP 클라이언트(RestTemplate, WebClient) 테스트용입니다.

4

Spring Boot Test에서 @MockBean 어노테이션의 목적은 무엇입니까?

5

@WebMvcTest를 사용한 테스트에서 HTTP 요청을 시뮬레이션하려면 어떤 객체를 사용합니까?

+27 면접 질문

다음 면접을 위해 Spring Boot을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기