문득 컨트롤러 테스트 코드를 작성하다가 둘 사이의 차이가 궁금해졌어요
언제는 MockMvc를 쓰고, 언제는 TestRestTemplate을 쓸까??
궁금해서 찾아보다가 아래 공식 문서에 잘 정리되어 있어서 링크 남깁니당
MockMvc는 서버사이드의 테스트 일때 사용하고
controller를 직접적으로 호출하는 것이 아닌 DispatcherServlet을 통해서 호출하고 싶을 때, 요청 명세와 응답 명세 테스트를 간편한 api를 이용해서 작성하고 싶을 때, 이러한 것을 servlet container 없이 하고 싶을 때 사용함
TestRestTemplate은 클라이언트 사이드에서 테스트 할 때 사용한다고 하네요
이건 제 생각이긴 한데, 클라이언트 사이드라고 하니 받은 응답가지고 어떤 추가적인 처리를 하고 싶을 때 사용하게 되는 것 같아요. MockMvc를 이용하면 request, response pair가 괜찮은지를 체크하는 것이고 RestTemplate을 사용하면 request에 대한 response를 가지고 추가적인 어떠한 로직을 테스트 할 수 있고.
[참고]