본문 바로가기

테스트코드

RestAssured vs MockMVC

사용 목적

  • 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/