SpringMVC UnitTest
🧩 Spring MVC UnitTest란
정의
Spring MVC UnitTest는 실제 서버를 띄우지 않고 Spring MVC 요청/응답 흐름을 검증하는 테스트 방식이다. 컨트롤러, 메시지 변환, 상태 코드, JSON 응답 같은 부분을 빠르게 확인할 수 있다.
- 웹 서버 배포 없이 테스트를 수행할 수 있다.
- 컨트롤러 단위 검증에 적합하다.
MockMvc와 함께 많이 사용한다.
⚙️ 테스트 환경 구성
build.gradle
dependencies {
...
testImplementation 'org.springframework:spring-test:5.3.8'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
TestClass
@ExtendWith(SpringExtension.class)
@WebAppConfiguration
@ContextConfiguration(classes = {APIConfiguration.class})
class ApiTestControllerTest {
...
}
역할
@WebAppConfiguration은 WebApplicationContext 기반 테스트 환경을 만들고,@ContextConfiguration은 테스트에 사용할 설정 클래스를 지정한다.
🧪 MockMvc와의 관계
MockMvc를 사용하면 실제 서버 없이 요청과 응답을 모의할 수 있다.ResultActions를 통해 응답 결과를 검증할 수 있다.Spring MVC테스트는 보통 이 조합으로 진행한다.
⚠️ 주의사항
@ExtendWith(SpringExtension.class)는 JUnit 5 기준이다.- JUnit 4를 쓴다면
@RunWith(SpringJUnit4ClassRunner.class)를 사용한다. - 단순 컨트롤러 테스트와 실제 스프링 컨텍스트 테스트는 목적이 다르다.
standaloneSetup과 전체 컨텍스트 기반 테스트는 검증 범위가 다르다.
📌 정리
- Spring MVC UnitTest는 실제 서버 없이 MVC 흐름을 검증하는 테스트다.
@WebAppConfiguration,@ContextConfiguration,MockMvc가 핵심이다.- 컨트롤러와 응답 포맷을 빠르게 확인할 때 유용하다.
댓글남기기