Wiremock 사용법 (with Groovy Spock)
2022. 10. 23. 17:17
Server/Test
spring boot에서 integration test를 작성할 때 RestTemplate이나 WebClient를 이용한 http call에 대한 테스트를 지원하는 여러가지 툴이 있는데, 그중에 WireMock에 대한 사용법을 공유하고자 한다. 전체 코드는 아래에서 볼 수 있습니다. https://github.com/pooi/wiremock-example GitHub - pooi/wiremock-example Contribute to pooi/wiremock-example development by creating an account on GitHub. github.com WireMock이란? https://wiremock.org WireMock은 지정한 로컬 포트에 mocking 서버를 띄워 해당 포트..
Spock 병렬 테스트하기
2022. 10. 23. 15:06
Server/Test
유닛 테스트를 작성하다 보면 병렬로 테스트해서 테스트 속도가 좀 빨라졌으면 좋겠다고 생각한 적이 많은데, Spock 2.0 이상 버전부터는 병렬 테스트가 가능해졌다. https://spockframework.org/spock/docs/2.0-M4/parallel\_execution.html 가이드 문서를 살펴보면 SpockConfig.groovy 파일에 아래 내용을 추가하면 된다고 알려주고 있다. runner { parallel { enabled true } } 따라서 프로젝트에 src/test/resources/SpockConfig.groovy 이 경로에 파일을 추가하면 병렬 테스트가 가능해진다. 적용 전 적용 후 또한, defaultSpecificationExecutionMode와 defaultExe..
Spring Boot 테스트 속도 개선기
2022. 9. 19. 20:03
Server/Test
문제점 대부분의 부서가 비슷하겠지만 유닛 테스트 작성이 정말 중요해지고 있다. 유닛 테스트는 개발할 때뿐만 아니라 여러 배포 과정에서도 자주 수행되는 요소 중 하나이다. (내가 짠 코드를 나도 100% 믿지 못하기 때문에..) 우리 부서에 몸집이 상당히 커진 legacy 프로젝트가 하나 있는데, 나름 이 프로젝트도 유닛 테스트는 꼼꼼히 작성되어 있는 편이다. 하지만 문제는 거기서 발생했다. 몸집이 너무 커진 프로젝트다 보니 처음부터 테스트를 꼼꼼히 작성하지 않아, 테스트 코드에 대한 설계가 주먹구구식으로 되어있었다. 이 프로젝트는 약 600개가량의 테스트가 작성되어 있고, 이 테스트를 모두 수행하는 데 6분 이상의 시간이 소요되고 있는 실정이었다. 우리는 보통 아래 4가지 경우마다 유닛 테스트를 실행시키..