logo

Spring Boot에서 외부 API 테스트하기

language-logoSpring

• Spring Boot의 `@RestClientTest` 예제를 통해 외부 API를 통해 데이터를 가져오는 경우에 대한 테스트 방법을 설명한다. 테스트 코드 작성 시 외부 자원 사용 코드를 Mocking하여 결과가 정상적으로 넘어올 것이라 가정하고 테스트를 작성하는 방법에 대해 설명한다.
• 하지만 이러한 테스트 방식은 실제 서버에 배포 후 테스트 시 에러가 발생할 수 있다. 예제에서는 orderApi에서 넘겨준 Json 결과가 LocalDateTime 형식이 아니라 문자열 형식으로 넘어와 파싱에 실패한 경우를 보여준다. 이를 해결하기 위해 `@RestClientTest`를 사용하여 실제 Http 요청/응답을 테스트하는 방법을 제시한다.
• Spring Boot에서는 테스트 코드를 통해 API의 Json 결과 포맷에 문제가 있는지 확인할 수 있도록 지원하며, 이를 위해 '@RestClientTest'와 'MockRestServiceServer'를 사용한다. '@RestClientTest'는 요청하는 쪽 입장에서의 테스트를 지원하며, 'MockRestServiceServer'는 임시 서버를 Bean으로 생성하여 원하는 형태의 요청이 오면 지정된 값으로 응답을 줄 수 있다.
• 예시로 제시된 테스트 코드는 'UserServiceTest' 클래스에서 'UserService'와 'MockRestServiceServer'를 주입받아 사용하며, 테스트 대상인 'OrderDto'가 'OrderAPI'의 Json 결과값을 제대로 담을 수 있는지 확인한다. 이를 위해 'MockRestServiceServer'는 지정된 요청이 오면 원하는 Json 형태의 응답을 반환하도록 설정된다.

thumbnail
북마크
공유하기
신고하기
8분 분량
조회수 317
profile-image향로
2년 전
Copyright © 2025. Codenary All Rights Reserved.