Spring Rest Docs 강의 질문이 있습니다.
0:59:00 전 내용입니다.
명세를 정한다
컨트롤러 @Valid 검증을 작성한다.
RestDocs 를 작성한다
가짜 데이터를 넣는다.
배포한다.
그 뒤 서비스와 리포지토리를 작성한다.
라고 정리를 해봤습니다.
그런데 여기서 궁금한게 4번인데요
가짜 데이터를 넣는다는 뜻을 잘 모르겠습니다.
테스트 환경에서는 자유롭게 docs/index.html 로 접근을 하고 라이브 환경에서는 해당 bootJar를 구문을 제거하고 배포하시는 건가요?
답변 2
0
안녕하세요, kamser 님!
답변 드리겠습니다.
1. 그런데 여기서 궁금한게 4번인데요
가짜 데이터를 넣는다는 뜻을 잘 모르겠습니다.
RestDocs로 문서를 만들 때 가짜 데이터를 넣는 것은 실제 API 문서에 보여질 예시 데이터를 넣는 과정입니다. 문서를 생성해보시면 내가 생성한 데이터를 기반으로 문서가 만들어져 있는 것을 확인하실 수 있습니다.
2. 테스트 환경에서는 자유롭게 docs/index.html 로 접근을 하고 라이브 환경에서는 해당 bootJar를 구문을 제거하고 배포하시는 건가요?
문서를 만드는 이유가 테스트 환경에서 사용한다기 보다는 우리 팀이 아닌 다른 팀에게 정보를 제공하기 위함인데요.
그래서 보통 개발 환경에 docs/index.html로 배포하여 사용하고는 합니다.
기본적으로는 운영 환경에도 동일한 path로 문서가 생성될 것인데요.
만약 회사 내부 시스템(private)이라 일반 사용자에게 노출되지 않을 서비스라면 굳이 제어를 할 필요는 없겠지만, 반대로 public한 서비스라면 개발 환경에만 문서가 노출되도록 제어를 하는 것이 좋겠죠.
구성한 시스템에 따라 제어하는 방법은 여러가지가 될 수 있겠습니다만, spring profile에 따라 제어하는 방법이 간단하겠네요.
요 블로그는 참고 차 보시면 좋을 듯 합니다.
도움이 되셨기를 바랍니다.
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
kamser님, 문의하신 ‘가짜 데이터를 넣는다’는 부분에 대해서 설명드릴게요.
가짜 데이터를 넣는다는 것은 테스트를 위해 실제 데이터베이스 대신 테스트에 적합한 데이터를 사용한다는 의미입니다. 일반적으로 Test Doubles라고 불리는데, Stub, Mock, Fake 등이 있습니다. 이렇게 함으로써 실제 서비스의 데이터에 영향을 주지 않으면서도 충분히 현실적인 시나리오를 테스트할 수 있습니다.
테스트 환경과 라이브 환경에 관한 당신의 질문은, 문서화된 API 스펙의 접근성에 대한 것으로 보입니다. 테스트 시에는 docs/index.html 파일에 접근이 가능하지만, 실제 라이브 환경에서는 외부에 노출되지 않도록 보안 조치를 취하거나 해당 파일을 포함하지 않고 배포하는 방식을 말합니다. 이러한 구분은 보안상의 이유로 중요하며, 실제 환경과 테스트 환경의 설정을 다르게 관리해야 한다는 것을 나타냅니다.
관련 문서와 추가적인 정보는 아래 링크를 참조하시면 도움이 될 것 같습니다.
- Spring Boot 테스트 유틸리티 및 클래스에 관한 내용: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto.testing
이 답변이 kamser님의 질문에 도움이 되었기를 바랍니다. 테스트 환경 설정이나 RestDocs 작성 시 더 궁금한 점이 있다면 언제든 문의해 주세요.
private 상수 테스트 관련 질문
0
83
1
void는 어떻게 테스트하나요..? void로 애초에 코딩하면 안되나요??
0
125
2
커버리지는 어떻게 활용하시는지 궁금합니다.
0
159
2
테스트 문서화 질문입니다
0
104
2
단위테스트 질문이 있습니다
0
96
2
컨트롤러는 모킹을 한 이유가 궁금합니다.
0
100
2
ERD 가장자리에 있는 도메인 테스트 질문
0
87
2
DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?
0
134
2
OrderCreateRequest DTO에 대해서 궁금한점
0
101
2
고전파의 테스트 대역 사용 대상, 공유 의존성
0
154
2
계층 관련 질문이 있습니다.
0
138
3
'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다
1
123
2
혹시 update 로직은 어떻게 테스트하나요? (@Setter?)
0
134
2
단위테스트와 통합테스트의 경계가 궁금합니다.
0
228
2
Service+Repository 통합테스트 관련 질문입니다.
0
150
2
OrderControllerDocsTest 작성 해봤는데요. 날짜 형식이 이상하게 나와요
0
183
2
test 용 .yml
0
90
2
throws Exception
0
78
2
카페키오스크 클래스 문의 ,,
0
87
2
Rest docs 문서용 테스트코드를 따로 작성해야 되나요?
0
172
2
테스트 코드에서 필요한 생성자
0
138
1
tearDown 순서
0
115
2
@Builder 생성자 private
0
136
2
@DisplayName gradle / intellJ
0
93
2





