최근 Spring Boot 프로젝트에 테스트 코드를 도입하려고 하고 있습니다. 그래서 팀 내에서 테스트 코드 스터디를 꾸리게 되었고 제가 리더 역할을 맡게 되었습니다.
처음에는 단순히 테스트 코드라 하면 Controller, Service, Repository 이렇게 세 계층을 테스트하는 것으로 알고 있었습니다. 그런데 테스트 코드에 대해 공부를 하면 할수록 내가 잘못알고 있었구나 라는걸 깨닫게 되었습니다.
예를들어 저는 Controller Test가 API를 테스트 하는 거니까 당연히 Integration Test인 줄 알았습니다. 그런데 이게 큰 오해더라구요...
이러한 부분을 정리하고 공유하고자 하는 차원에서 글을 남겨봅니다 테스트 피라미드 우선 가장 좋은 테스트 비율은 Unit 70%, Integration 20%, E2E 10% 이렇게 구성된다고 합니다. 전통적인 3 Layer 구조에서는 아래의 표와 같이 생각하면 됩니다.
(아직 헥사고날 아키텍쳐에 대해서는 아직 깊은 이해를...