사용 목적
- MockMvc
- 웹 애플리케이션을 배포하지 않고 스프링 MVC의 동작을 재현할 수 있는 라이브러리
- Controller Layer Unit Test에 사용
- @WebMvcTest를 통해 Presentation Layer Bean만 호출, 그 외 Bean은 Mocking
- RestAssured
- REST 웹 서비스를 검증하기 위한 라이브러리
- End-to-End Test(전 구간 테스트)에 사용
- @SpringBootTest로 실제 요청을 보내어 전체적인 로직 테스트
의존성
- MockMvc
- Spring Framework Test 클래스 중 하나
- Spring test 의존성이 추가되어 있는 경우, 별도의 의존성 필요하지 않음.
- RestAssured
- 의존성 추가
dependencies { testImplementation 'io.rest-assured:rest-assured:3.3.0' }장단점
- 의존성 추가
- MockMvc
- Presentation Layer 테스트 시, 세밀한 설정이 가능하다.
- 가독성이 좋지는 않다.
- RestAssured
- BDD 스타일로 작성 가능하여 가독성이 좋음
- MockMvc 보다 json 데이터를 검증하기에 쉽다.
- 의존성 추가로 인해 프로젝트가 무거워질 수 있다.
참고자료
https://tecoble.techcourse.co.kr/post/2020-08-19-rest-assured-vs-mock-mvc/