Loading...
Spring Framework Reference Documentation 7.0.2의 Setup Options의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MockMvc는 두 가지 방식 중 하나로 설정할 수 있습니다.
WebApplicationContextSpring MVC와 controller 인프라가 포함된 Spring 설정을 가리킵니다.
테스트하려는 controller를 직접 가리키고 Spring MVC 인프라를 프로그래밍 방식으로 구성합니다.
어떤 설정 옵션을 사용해야 할까요?
WebApplicationContext 기반 테스트는 실제 Spring MVC 설정을 로드하여 보다 완전한 통합 테스트를 제공합니다. TestContext 프레임워크는 로드된 Spring 설정을 캐시하기 때문에, 동일한 설정을 사용하는 테스트를 테스트 스위트에 더 많이 도입하더라도 테스트가 빠르게 실행되도록 도와줍니다.
또한 @MockitoBean 또는 @TestBean을 사용하여 controller에서 사용하는 서비스를 오버라이드함으로써 웹 레이어 테스트에 집중할 수 있습니다.
반면 standalone 테스트는 단위 테스트에 조금 더 가깝습니다. 한 번에 하나의 controller만 테스트합니다. controller에 mock 의존성을 수동으로 주입할 수 있으며, Spring 설정을 로드하지 않습니다.
이러한 테스트는 스타일에 더 집중되어 있고 어떤 controller가 테스트 대상인지, 동작하기 위해 특정 Spring MVC 설정이 필요한지 등을 더 쉽게 파악할 수 있습니다. standalone 설정은 특정 동작을 검증하거나 이슈를 디버그하기 위해 애드혹 테스트를 작성하는 매우 편리한 방법이기도 합니다.
대부분의 "통합 테스트 대 단위 테스트" 논쟁과 마찬가지로, 정답은 없습니다. 그러나 standalone 테스트를 사용한다는 것은 Spring MVC 설정을 검증하기 위한 추가 통합 테스트가 필요하다는 것을 의미합니다. 또는 모든 테스트를 WebApplicationContext로 작성하여 항상 실제 Spring MVC 설정을 대상으로 테스트할 수도 있습니다.
Overview
Hamcrest Integration