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: ...
    }

}
반응형