MockMvc
을 사용하면 HTTP 요청주기가 조롱 된 응용 프로그램의 인스턴스를 테스트하고있는 것입니다. 따라서 테스트 범위는 애플리케이션의 MVC 측면에 불과합니다. 나는 이것이 전형적으로 "통합 테스트"라고 분류되지는 않을 것이라고 생각하지만 대신 단위 테스트에 가깝다 (비록 그 범위가 단일 클래스보다 상당히 크다).
사용
TestRestTemplate
당신은 당신이 전체 응용 프로그램 컨텍스트를 '생겨나'하는 즉 응용 프로그램의
실제 인스턴스를 테스트하고 외부 배우로 호출된다. 이것은 일반적으로 "통합 테스트"라고하며 실제 사용에 가장 가까운 테스트 일 수 있습니다. 는 '전체 스택'통합 테스트가
MockMVC
시험에 의해 제공되는 범위의 상위 집합을 제공 할 수
TestRestTemplate
를 통해 호출하기 때문에 당신이
MockMVC
테스트 귀찮게 왜
지금, 당신은 궁금 할 것이다. 그렇다면이 질문에 대한 질문이라고 생각합니다.
테스트 범위; MockMVC
테스트 사례는 전체 통합 테스트보다 일반적으로 (애플리케이션 컨텍스트가 적기 때문에) 신속하고 쉽게 시작됩니다. 또한 응용 프로그램 컨텍스트를 덜 사용하기 때문에 테스트에서 제대로 작동하지 않는 실제 응용 프로그램 컨텍스트의 모든 측면을 조롱하기가 힘들지 않을 수도 있습니다.
쉬운 사용법; MockMVC
은 HTTP 상태를 주장하고, JSON 응답 등에 대해 질문하고 주장하는 정적 도우미와 함께 제공됩니다. 물론 YMMMV이지만 많은 사람들이 쉽게 개발할 수 있고 읽을 수있는 테스트 사례를 전달하는 데 도움이됩니다. 모든 호출에 대한 모든 매핑, 행복하고 슬픈 경로를 포함한 전체 컨트롤러 레이어의 자세한 테스트
, 당신은 아마도 두 가지 접근 방식의 조합을 사용하는 것이 좋습니다 HTTP 상태 코드, 내용 본문 등에 대한 깊은 단언
TestRestTemplate
사용자 관점에서 표현 된 주요 흐름에 대한 테스트 사용자가/볼에 관심이있는 비트에 국한 주장과 Save a new Foo
, Search for all Foos
, Submit an invalid Foo update
등.
는 자세한 설명을 주셔서 감사합니다! 내가 확인할 수없는 유일한 사실은 MockMVC 테스트가 더 빠릅니다. 그것은 정확히 같은 시간이 걸립니다 (내 컴퓨터에서) – DimarZio