46.3.20 자동 구성된 REST 클라이언트
Last updated
Last updated
@RestClientTest 어노테이션을 사용하여 REST 클라이언트를 테스트 할 수 있습니다. 기본적으로 Jackson, GSON 및 Jsonb 지원을 자동 구성하고 RestTemplateBuilder를 구성하며 MockRestServiceServer에 대한 지원을 추가합니다. 일반 @Component 빈은 ApplicationContext로 로드되지 않습니다.
RestClientTest : 외부의 어떤 Rest API를 사용할 때 mock으로 대체할 수 있는 유용한 테스트 어노테이션.
RestTemplateBuilder 클래스 : 스프링부트 1.4 부터 추가된 클래스. 클래스패스에 라이브러리에 따라 자동으로 ClientHttpRequestFactory를 생성해주고 메시지 컨버터도 알맞게 추가해준다.
@RestClientTest
기능은 자신이 서버가 아니라 클라이언트 입장이 되는 코드를 테스트할때 유용합니다. 예를 들면, Apache HttpClient나 Spring의 RestTemplate을 사용하여 외부 서버에 웹 요청을 보내는 경우가 있습니다. @RestClientTest
는 요청에 반응하는 가상의 Mock 서버를 만든다고 생각하면 됩니다. 내부 코드에서 웹 요청이 발생할 경우 @RestClientTest
로 인해서 생성된 가상의 서버가 응답해줍니다. 물론 그 가상의 서버가 어떤 식으로 응답을 할지 정의할 수 있습니다. 이를 사용하면 보다 RestTemplate
같은 객체를 Mock 객체로 바꿔서 테스트하는 것보다 리얼 환경에 가깝게 단위 테스트를 수행할 수 있습니다. 이 기능을 사용하면 자동으로 MockRestServiceServer
라는 빈이 생성되며 이를 이용하면 손쉽게 요청과 응답에 대해 설정을 할 수 있습니다.
@RestClientTest에 의해 활성화되는 자동 구성 설정 목록은 부록에서 찾을 수 있습니다.
테스트하려는 특정 Bean은 다음 예제와 같이 @RestClientTest의 value 또는 components 속성을 사용하여 지정해야합니다.