inflearn logo
강의

講義

知識共有

Practical Testing: 実用的なテストガイド

Spring REST Docs

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

172

ewgregerg c

投稿した質問数 26

0

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

 

 

spring tdd jpa mockito 소프트웨어-테스트 junit5

回答 2

0

wbluke

안녕하세요, ewgregerg c 님!

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

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

감사합니다. 🙂

0

communityai8509

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

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

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

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

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

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

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

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

private 상수 테스트 관련 질문

0

82

1

void는 어떻게 테스트하나요..? void로 애초에 코딩하면 안되나요??

0

124

2

커버리지는 어떻게 활용하시는지 궁금합니다.

0

159

2

테스트 문서화 질문입니다

0

104

2

단위테스트 질문이 있습니다

0

95

2

컨트롤러는 모킹을 한 이유가 궁금합니다.

0

100

2

ERD 가장자리에 있는 도메인 테스트 질문

0

87

2

DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?

0

132

2

OrderCreateRequest DTO에 대해서 궁금한점

0

101

2

고전파의 테스트 대역 사용 대상, 공유 의존성

0

154

2

계층 관련 질문이 있습니다.

0

137

3

'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다

1

122

2

혹시 update 로직은 어떻게 테스트하나요? (@Setter?)

0

133

2

단위테스트와 통합테스트의 경계가 궁금합니다.

0

227

2

Service+Repository 통합테스트 관련 질문입니다.

0

149

2

OrderControllerDocsTest 작성 해봤는데요. 날짜 형식이 이상하게 나와요

0

183

2

test 용 .yml

0

89

2

throws Exception

0

78

2

카페키오스크 클래스 문의 ,,

0

87

2

테스트 코드에서 필요한 생성자

0

137

1

tearDown 순서

0

115

2

@Builder 생성자 private

0

135

2

@DisplayName gradle / intellJ

0

92

2

36:40 초 부근에 tearDown 없어도 통과하는 이유가 궁금해요

0

180

2