본문 바로가기
IT/spring

@WebMvcTest 어노테이션: 스프링 MVC 테스트

by 뉴코딩맨 2023. 7. 5.
@WebMvcTest 어노테이션은 스프링 MVC 컨트롤러의 단위 테스트를 작성할 때 사용되는 어노테이션입니다. @WebMvcTest 어노테이션에 대해 알아보고, 어떻게 사용되는지 예제를 통해 설명하겠습니다.

 

 

@WebMvcTest 어노테이션

  • 기능: @WebMvcTest 어노테이션은 스프링 MVC 컨트롤러의 단위 테스트를 작성할 때 사용됩니다.
  • 테스트 컨텍스트: @WebMvcTest 어노테이션을 사용하면 스프링 MVC 테스트 컨텍스트가 로드되고, 테스트 중에 해당 컨텍스트를 사용할 수 있습니다.
  • 제한된 컴포넌트: @WebMvcTest 어노테이션을 사용하면 컨트롤러와 관련된 빈만 로드되므로 다른 컴포넌트는 자동으로 제외됩니다.

 

예제

다음은 @WebMvcTest 어노테이션을 사용하여 스프링 MVC 컨트롤러의 단위 테스트를 작성하는 예제입니다.
 
@WebMvcTest(MyController.class)
public class MyControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void testGetHello() throws Exception {
        mockMvc.perform(get("/hello"))
                .andExpect(status().isOk())
                .andExpect(content().string("Hello, World!"));
    }
}
 
위의 예제에서 @WebMvcTest 어노테이션은 MyController라는 스프링 MVC 컨트롤러의 단위 테스트를 작성한다는 것을 나타냅니다. MockMvc를 사용하여 /hello 엔드포인트에 GET 요청을 보내고, 응답을 검증하는 테스트 코드를 작성하였습니다.
 
 

결론

@WebMvcTest 어노테이션은 스프링 MVC 컨트롤러의 단위 테스트를 작성할 때 사용됩니다. 이 어노테이션을 사용하면 스프링 MVC 테스트 컨텍스트가 로드되고, 테스트 중에 해당 컨텍스트를 사용할 수 있습니다. 또한, 제한된 컴포넌트만 로드되므로 테스트의 성능과 효율성을 높일 수 있습니다.
 

댓글