MockMvc와 Restassued의 차이점을 말해주세요. #208
Replies: 2 comments
-
MockMvc
RestAssured
속도당연히 필요한 빈만 불러오는 MockMvc가 더 빠르다. 의존성MockMvc 는 SpringTest 에서 제공하는 라이브러리이기 때문에 spring-test 의존성이 추가되어있다면, 별도의 의존성을 추가하지 않아도 된다. 반면 RestAssured 는 io.rest-assured 의존성을 추가해야 한다. 의존성 추가가 별거냐고 할 수도 있지만, 의존성은 추가할 수록 프로젝트가 무거워지기 때문에 신중히 생각해야 한다. 가독성MockMvc 는 perform, accept, andExpect 를 사용하는 반면, RestAssured 는 BDD 스타일로 given, when, then을 사용한다. 그리고 ResponseBody의 JSON을 검증하는 부분에서 MockMvc는 jsonpath 를 사용하고, RestAssured는 extract().as() 로 객체를 꺼내올 수 있다. 개인적으로 MockMvc 불편한 점프레젠테이션 레이어에 관련된 빈을 사용하기 위해, 이들이 의존하는 빈을 목빈으로 등록해줘야 에러가 안난다. 예를 들면, ThemeController 를 테스트하기 위해 컨트롤러가 직접 의존하는 ThemeService를 추가해줘야 하는 것은 물론이거니와, ArgumentResolver 가 의존하는 MemberService와 JwtProvider까지 모킹해줘야 한다. 그런데 그것들 하나하나 모킹하는게 너무 헷갈림💀 그리고 그것들이 테스트 코드 윗부분에 쭉~ 적혀있으면 내가 컨트롤러 클래스만 단위테스트를 하고 있다는게 와닿지가 않는달까.. ref. https://tecoble.techcourse.co.kr/post/2020-08-19-rest-assured-vs-mock-mvc/ |
Beta Was this translation helpful? Give feedback.
-
MockMvcMockMvc는 Spring MVC 애플리케이션을 테스트하기 위해 제공되는 라이브러리입니다. 대부분 Controller Layer Unit Test(단위 테스트)에 사용됩니다. 보통 RestAssuredRestAssured는 RESTful 웹 서비스의 엔드포인트를 테스트하기 위한 라이브러리입니다. 차이점
|
Beta Was this translation helpful? Give feedback.
-
뭘까용
Beta Was this translation helpful? Give feedback.
All reactions