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

BeakGwa님의 프로필 이미지

작성한 질문수

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

Spring REST Docs

Spring REST Docs 관련 질문 사항

24.09.18 19:59 작성

·

43

·

수정됨

0

  • 학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!

  • 먼저 유사한 질문이 있었는지 검색해 보세요.

  • 서로 예의를 지키며 존중하는 문화를 만들어가요.

     

 

안녕하세요! 강의 유용하게 잘 보고 있습니다.

테스트 기반 문서에 대해서 의문점이 있어 질문 드립니다.

 

  1. 기존에 작성한 MockMVC를 활용한 Controller단 테스트는, REST Docs를 사용하기 위해 만든 테스트가 있다면 중복되는 테스트는 제외를 해도 관계가 없을까요?

  • 예시로, 정상 Case 테스트와, 예외 Case (비교적 다수) 가 하나의 API에 테스팅 될 것 같은데, 정상 Case 테스트만 RestDocs로 운용, 나머지 예외 케이스는 Mocking 하여 별도의 Test 진행.

  • 아니면 controller 테스트는 Docs로 구분, 정상케이스만 .andDo(...) 적용하여 같은 테스트 파일에 포함되도록 설정 등등...

 

  1. REST Docs의 가장 큰 장점은 테스트가 완료된 API End Point만 명세화되어서 작성 된다고 느껴졌습니다.

     

    • 테스트 코드를 통과해야 merge가 가능하도록 branch 전략을 수립하거나, CI/CD 과정에 포함시키는 등을 진행하면 Swagger를 통한 명세 작성에 비해 떨어지는 접근성을 지닐 수도 있다고 생각합니다.

    • 다만, 테스트코드의 강제성 부분에서는 장점이 있다고 생각되는데 혹시 다른부분의 장점이 또 있을까요?


    테스트 코드 작성 부분이 많이 약해 도움받을 목적으로 강의를 수강하게 되었는데, 많은 부분에서 도움을 받은 것 같습니다. 감사합니다!

답변 3

0

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

2024. 09. 22. 20:56

안녕하세요, BeakGwa 님!

  1. 네, 저도 보통의 경우 정상 케이스는 REST Docs로 검증, 필수 파라미터에 대한 예외 케이스는 ControllerTest로 검증하고 있어요. 다만 예외 케이스를 문서화하는 것이 필요하다고 느껴진다면, 특정 예외 상황도 문서화하여 관리할 수는 있습니다.

  2. Swagger에 비해 품이 많이 드는 것은 사실이라서, 프로젝트나 회사의 상황이 비교적 변화 속도가 빠르다면, Swagger도 좋은 선택이라고 생각합니다. (개인적으로는 REST Docs가 테스트 기반이기 때문에 선호하는 편이지만요 ㅎㅎ)

감사합니다 🙂

0

BeakGwa님의 프로필 이미지
BeakGwa
질문자

2024. 09. 19. 01:32

비슷한 생각을 가진 여러 수강생에 남겨주신 질문 확인하였습니다! 감사합니다~

0

인프런 AI 인턴님의 프로필 이미지

2024. 09. 18. 20:01

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

Spring REST Docs 관련 질문에 대해 기존에 유사한 질문을 다루었던 답변들을 찾았습니다. 각각의 답변 내용을 참고해 보시면 많은 도움이 될 것 같습니다.

  1. 문서용 테스트와 일반 테스트의 분리 여부에 대한 질문:

  2. Test-Driven Documentation의 장점:

    • Spring REST Docs 관련 질문
      • 테스트 기반 문서 작성의 이점과 RestDocs 사용 시 추가적인 고려 사항들이 포함되어 있습니다.
      • REST Docs를 통해 API 문서가 자동으로 생성되며, 이는 API의 실제 동작과 항상 일치하게 보장된다는 장점이 설명되어 있습니다.

요약하자면, REST Docs 테스트와 일반 컨트롤러 테스트를 분리하여 관리하는 것은 목적의 차이에 따라 유용할 수 있습니다. REST Docs는 문서화와 API 검증을 동시에 수행하며, 예외 처리는 일반 테스트에서 따로 관리하는 방법이 보다 효율적이라는 의견이 많이 공감되고 있습니다.

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

BeakGwa님의 프로필 이미지

작성한 질문수

질문하기