본문 바로가기

spring boot3

[Test] Test Code에 필요한 Test Fixture 재사용하기 SWM 프로젝트를 하면서 테스트 코드를 열심히 짜면서 개발하고 있다. TDD는 아니지만, API 하나하나를 개발할 때마다 단위 테스트를 작성하고 있다. 개발 시간이 배로 드는 것 같지만, 테스트 코드 덕분에 리펙토링이나 코드 리뷰 이후 코드를 수정하는 일에 있어서 자신감과 안정감을 가지고 코드를 수정할 수 있고, 매번 서버를 실행시키고 직접 테스트를 하는 것보다는 훨씬 쉽고 빠르게 테스트할 수 있다는 점에 매우 만족하면서 열심히 작성 중이다. 진짜 시간이 더 걸린다 외 다른 점들은 다 좋은 점들밖에 없는 것 같다! 단위 테스트에 필요한 데이터들을 생성하는 과정에서 시행착오를 겪으면서 조금 더 나은 방법을 알게 되어서 공유하려고 한다. (더 나은 방법이 있을 수 있는데.. 더 좋은 방법이 있다면 알려주십시.. 2023. 7. 11.
[Test] 외부 API 테스트하기 (+ RestTemplateBuilder) SWM에서 프로젝트를 진행하는 과정에서 카카오 도서 검색 API를 사용하여 도서를 검색해 오는 기능을 구현하고, 테스트 코드를 작성하는 과정에서 아래와 같은 이슈가 나타났다. Unable to use auto-configured MockRestServiceServer since MockServerRestTemplateCustomizer has not been bound to a RestTemplate java.lang.IllegalStateException: Unable to use auto-configured MockRestServiceServer since MockServerRestTemplateCustomizer has not been bound to a RestTemplate at org.spri.. 2023. 7. 6.
[Spring] Spring Rest Docs로 API 문서 자동화하기 SWM에서 프로젝트를 진행하는 과정에서 API 문서 자동화를 위해 Spring Rest Docs를 적용하기로 했다. 이전에는 Swagger나 노션에 API 문서를 작성했지만, 아래와 같은 단점이 있었고 여러 단점을 해결하기 위해 Spring Rest Docs를 적용하기로 결정하였다. Swagger는 프로덕션 코드(컨트롤러 레이어, 요청/응답 객체)에 Swagger 애노테이션이 추가되어 가독성이 떨어졌다. 테스트 기반 아니기 때문에, API 문서대로 기능이 동작한다는 보장이 없었다. 노션에 API 문서를 작성 시, 새로운 코드를 개발하거나 기존 코드를 변경하였을 때 코드와 문서를 동기화하는 과정이 번거로웠다. 따라서 이번 포스트에서는 Spring Rest Docs를 적용하는 과정을 기록하고자 한다. 1) .. 2023. 7. 3.