작성
·
100
답변 2
0
안녕하세요, ewgregerg c 님!
물론 상관은 없으나, 저는 따로 관리하는 것을 선호합니다.
문서용 테스트는 그 특성상 길이가 길기도 하고, 테스트이긴 하나 문서를 생성하기 위한 작업이기 때문에 프로덕션의 기능 테스트를 하는 ControllerTest와는 구분해서 보아야 할 필요가 있습니다.
기능 테스트는 기능 테스트끼리, 문서 테스트는 문서 테스트끼리 분리하여 관리하는 것이 향후 프로덕트가 커짐에 따라 다루는 데에 더 용이하지 않을까 싶어요.
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다. ewgregerg 님!
Spring REST Docs와 관련하여 문서용 테스트 코드를 별도로 작성해야 하는지 궁금하신 것 같습니다.
정확히 어떤 방식이 가장 적합한지는 프로젝트의 요구사항과 팀의 개발 방식에 따라 달라질 수 있지만, 일반적으로는 다음과 같은 두 가지 접근 방식을 고려할 수 있습니다:
별도 작성: ProductControllerDocsTest
와 같은 문서 전용 테스트 클래스를 별도로 작성하는 방법입니다. 이렇게 하면 문서 생성을 위한 테스트와 기능 검증을 위한 테스트를 분리하여 관리할 수 있습니다. 이 방식은 문서화에 집중할 수 있게 도와주며, 코드의 관심사를 명확하게 나누는 장점이 있습니다. API의 변화에 따라 문서화와 테스트를 각각 독립적으로 관리할 수 있습니다.
기존 테스트에 통합: 이미 존재하는 ProductControllerTest
에 Spring REST Docs 관련 코드를 추가하여 관리하는 방식입니다. 이는 테스트 코드의 중복을 줄이고, 테스트할 때마다 문서도 함께 최신 상태로 유지할 수 있는 이점이 있습니다. 하지만 테스트 코드가 복잡해질 수 있어 관리가 어렵거나, 문서화되지 않는 기능의 테스트 코드와 문서화 코드를 분리하기 어렵다는 단점이 있습니다.
두 방법 모두 사용할 수 있으며, 선택은 팀 내의 개발 흐름과 테스트의 목적에 따라 결정하시면 됩니다. 그러나 일반적으로 실무에서는 문서의 유지보수와 테스트의 명확성을 위해 별도의 문서 전용 테스트를 작성하는 경향이 있습니다.
관련된 이전 질문의 사례에서 ControllerTest
와 DocsTest
를 활용하여 테스트를 분리하는 방법에 대해 더 잘 설명되어 있는 답변을 참고하시기를 추천드립니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.