MockMvc 란

웹 애플리케이션을 애플리케이션 서버에 배포하지 않고도 스프링 MVC 동작을 재현할 수 있는 클래스

MockMvc 흐름 :

-테스트 케이스의 메서드는 DispatcherServlet(프론트 컨트롤러였지! ) 에 요청할 데이터(요청 경로/ 요청 파라미터 )를 설정

-MockMvc 는 DispatcherSevlet 은 테스트용으로 확장된 TestDispatcherSevlet

-DispatcherServlet 은 요청을 받아 매핑정보를 보고 그에 맞는 핸들러(컨트롤러) 메소드 호출

테스트 케이스 메서드는 MockMvc 가 반환하는 실행결과 받아 실행결과가 맞는지 검증한다.

→ 스프링 mvc 의 설정을 적용한 DI컨테이너(dependency injection) 를 만들어 이 DI 컨테이너를 사용해 스프링 MVC 동작 재현 애플리케이션 서버에 배포한 것과 같은 것처럼 테스트가 가능하다.

**** WebApplicationContext → 스프링 프레임워크에서 ioc 컨테이너 생성시 자동으로 생성 가능하다. 웹어플리케이션컨텍스트

-webApplicationContext → 스프링 프레임워크에서 ioc 컨테이너 생성시 자동으로 생성한다.

-Autowired 의 기본 설정 : 타입이 해당 필드에 대입할 수 있는 경우.