Programming/Spring Framework
[스프링부트] MockMvc Test 2가지 방법
cbw1030
2021. 11. 27. 22:02
반응형
스프링부트에서는 MockMvc로 테스트를 하는 방법에는 두 가지가 있습니다.
1. @SpringBootTest와 @AutoConfigureMockMvc
UserController가 존재한다고 가정해보겠습니다.
@SpringBootTest
@AutoConfigureMockMvc
class UserControllerTest() {
@Autowired
private MockMvc mockMvc;
@Test
void register() {
// todo: ...
}
}
스프링부트에서는 Test 클래스를 만들면 @SpringBootTest 어노테이션만 붙어 있습니다.
MockMvc로 테스트를 하기 위해서는 @AutoConfigureMockMvc를 추가적으로 붙여야 합니다.
주의할 점은 Test 클래스에서는 MockMvc를 스프링 컨테이너로부터 주입받을 때 생성자, Setter 방식으로 주입이 불가능합니다. 따라서 필드에 @Autowired를 붙여서 사용해야만 합니다.
2. @WebMvcTest
웹 환경의 테스트를 경량화해서 진행할 수 있는 어노테이션입니다.
@WebMvcTest 아래처럼 적용할 컨트롤러 클래스를 명시해줘야 동작합니다.
@WebMvcTest(UserController.class)
class UserControllerTest() {
@Autowired
private MockMvc mockMvc;
@Test
void register() {
// todo: ...
}
}
반응형