해결된 질문
23.05.07 20:36 작성
·
626
1
안녕하세요 강사님, 우선 꿀팁 가득차있는 강의 너무너무 잘 들었습니다.
Spring REST Docs 관련해서 질문이 있습니다. 강의에서는 이미 레이어별로 테스트 코드를 작성하였는데요. Spring REST Docs 적용하면서 별도의 ProductControllerDocsTest 클래스를 만들어 createProduct()의 동일한 테스트 코드가 문서를 위해 또 들어가는 것 같아 관리해야할 테스트 코드가 두배가 되는게 아닌가 궁금해서 질문드립니다!
실무에서는 이렇게 테스트 전용 테스트코드와 문서용 테스트 코드를 별도 분리하는지, 아니면 둘을 함께 포함하여 하나로 작성하는 방식인가요? ~
감사합니다.
답변 1
1
2023. 05. 09. 08:04
안녕하세요, lina님! :)
네네 제가 작성한 테스트 기준으로 이야기하면, ControllerTest와 ControllerDocsTest는 목적이 다르기 때문에 별도로 작성하고 있습니다.
DocsTest의 경우에는 테스트 수행 시 결과물로 문서 조각이 나오게 되고, 이를 모아서 문서를 만들어내는 형태이기 때문에 일반적인 ControllerTest와는 분리되는 것이 좋다고 보고 있어요! (관심사의 분리)
그래서 강의에서와 같이 저는 보통 ControllerTest에서는 필수값들에 대한 예외처리 검증, 그에 따른 응답값의 형태를 검증하고, DocsTest에서는 문서를 생성하는 동시에 실제 존재하는 API인지, 사전에 의도한 인터페이스와 응답 구조를 가진 유효한 API인지를 검증하도록 하고 있습니다.
도움이 되셨기를 바랍니다!
감사합니다 :)