스프링 컨틀롤러를 테스트하기 위해서 사용하는 어노테이션들이 있다.
1. @AutoConfigureMockMvc
2. @WebMvcTest
웹 애플리케이션에서 컨트롤러를 테스트 할 때, 서블릿 컨테이너를 모킹하기 위해서 사용하는 어노테이션
@SpringBootTest와 같이 사용하여, 컨트롤러뿐만 아니라 @Service나 @Repository 객체들도 모두 메모리에 올린다.
모든 데이터를 검증할 수 있다는 장점이 있지만, 전체 애플리케이션 구성을 로드하여 스프링이 관리하는 모든 빈을 등록시키기 때문에 무겁다. 따라서 디버깅하기 힘들고, 시간이 오래걸린다는 단점이 있다.
위와 같이 웹 애플리케이션에서 컨트롤러를 테스트 할 때, 서블릿 컨테이너를 모킹하기 위해서 사용하는 어노테이션
@AutoConfigureMockMvc와 달리 @WebMvcTest는 web 레이어 관련 빈들만 등록하므로 비교적 가볍다.
web레이어 관련 빈들만 등록되므로 Service는 등록되지않는다. 따라서 가짜로 만들어줄 필요가 있다 (@MockBean)