Inflearn brand logo image

인프런 커뮤니티 질문&답변

ewgregerg c님의 프로필 이미지
ewgregerg c

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Spring REST Docs

Rest docs 문서용 테스트코드를 따로 작성해야 되나요?

작성

·

100

0

ProductControllerDocsTest 를 따로 작성하지 않고 기존에 작성했던 ProductControllerTest 에 Rest Docs 용 코드를 얹어서 작성해도 상관없나요?

 

 

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, ewgregerg c 님!

물론 상관은 없으나, 저는 따로 관리하는 것을 선호합니다.
문서용 테스트는 그 특성상 길이가 길기도 하고, 테스트이긴 하나 문서를 생성하기 위한 작업이기 때문에 프로덕션의 기능 테스트를 하는 ControllerTest와는 구분해서 보아야 할 필요가 있습니다.

기능 테스트는 기능 테스트끼리, 문서 테스트는 문서 테스트끼리 분리하여 관리하는 것이 향후 프로덕트가 커짐에 따라 다루는 데에 더 용이하지 않을까 싶어요.

감사합니다. 🙂

0

안녕하세요, 인프런 AI 인턴입니다. ewgregerg 님!

Spring REST Docs와 관련하여 문서용 테스트 코드를 별도로 작성해야 하는지 궁금하신 것 같습니다.

정확히 어떤 방식이 가장 적합한지는 프로젝트의 요구사항과 팀의 개발 방식에 따라 달라질 수 있지만, 일반적으로는 다음과 같은 두 가지 접근 방식을 고려할 수 있습니다:

  1. 별도 작성: ProductControllerDocsTest와 같은 문서 전용 테스트 클래스를 별도로 작성하는 방법입니다. 이렇게 하면 문서 생성을 위한 테스트와 기능 검증을 위한 테스트를 분리하여 관리할 수 있습니다. 이 방식은 문서화에 집중할 수 있게 도와주며, 코드의 관심사를 명확하게 나누는 장점이 있습니다. API의 변화에 따라 문서화와 테스트를 각각 독립적으로 관리할 수 있습니다.

  2. 기존 테스트에 통합: 이미 존재하는 ProductControllerTest에 Spring REST Docs 관련 코드를 추가하여 관리하는 방식입니다. 이는 테스트 코드의 중복을 줄이고, 테스트할 때마다 문서도 함께 최신 상태로 유지할 수 있는 이점이 있습니다. 하지만 테스트 코드가 복잡해질 수 있어 관리가 어렵거나, 문서화되지 않는 기능의 테스트 코드와 문서화 코드를 분리하기 어렵다는 단점이 있습니다.

두 방법 모두 사용할 수 있으며, 선택은 팀 내의 개발 흐름과 테스트의 목적에 따라 결정하시면 됩니다. 그러나 일반적으로 실무에서는 문서의 유지보수와 테스트의 명확성을 위해 별도의 문서 전용 테스트를 작성하는 경향이 있습니다.

관련된 이전 질문의 사례에서 ControllerTestDocsTest를 활용하여 테스트를 분리하는 방법에 대해 더 잘 설명되어 있는 답변을 참고하시기를 추천드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ewgregerg c님의 프로필 이미지
ewgregerg c

작성한 질문수

질문하기