@WebMvcTest는 모든 빈을 로드하지 않아 통합테스트보다 가볍다. 해당 어노테이션을 사용하면 다음을 로드한다.
: web layer를 테스트하고 싶을 때 사용을 고려한다. 위에 써놓은 Present Layer 관련 컴포넌트만 스캔을 한다.
Service, Repository 주입이 필요한 경우에는 @MockBean으로 주입받아 테스트를 진행한다.
@SpringBootTest의 경우 모든 빈을 로드하기 때문에 테스트 구동 시간이 오래 걸리고, 테스트 단위가 크기 때문에 디버깅이 어려울 수 있다. Controller 레이어만 테스트하고 싶을 때에는 @WebMvcTest를 쓰는게 유용하다.
: 애플리케이션을 배포하지 않고도, 서버의 MVC 동작을 테스트할 수 있는 라이브러리다.
주로 Controller 레이어 단위테스트에 많이 사용된다.
: 말 그대로 가짜 객체
해당 단위 테스트에만 집중할 수 있도록 도와준다.
여기서는 서비스를 MockBean으로 선언하였고, 서비스 내 의존성 연결고리를 신경 안써도 되며 서비스의 호출, 결과를 임의로 조작하여 테스트를 지원한다.