작성
·
43
0
안녕하세요 선생님 좋은 강의 잘 듣고 있습니다!
다름이 아니라 Validation과 ControllerAdvice에
대해 질문이 있습니다.
컨트롤러 테스트 할 때 빈 validation이 적용 된 모든 필드를 하나씩 모두 검증 하나요?
컨트롤러에서 request 필드가 많아서 하나씩 검증 하기엔 너무 테스트가 길지 않을까 고민 됩니다.
실무에서도 컨트롤러의 모든 필드를 검증 하나요?
공통 예외 처리는 어떻게 하는게 좋을까요?
@RestControllerAdvice를 basePackages 설정 하여 처리 하고 있습니다.
예상치 못한 예외의 경우가 생길것을 대비 하여
basePackages가 없는 advice를 두었습니다.
이렇게 하니 우선 순위가 밀려서 GeneralAdvice
가
먼저 선택되어 Order로 우선순위 설정 해두었습니다.
처리 못한 예외를 각 advice에 넣자니 다른
advice도 코드가 중복 될것 같아 이렇게 처리 했는데
실무에서는 어떻게 처리 하시는지 궁금 하여 질문 남깁니다.!
답변 2
1
안녕하세요, 조희제 님!
컨트롤러 테스트 할 때 빈 validation이 적용 된 모든 필드를 하나씩 모두 검증 하나요?
테스트는 항상 자신이 필요하다고 생각하는 범위에 적용하시면 됩니다.
모든 필드를 검증하는 것이 물론 좋으나, 주어진 시간과 필드 중요도에 따라 선택할 수도 있는 것이죠.
상황에 맞게 결정하시면 됩니다.
저도 시간이 충분하다면 최대한 많이 검증하는 방향으로 테스트를 작성합니다.
공통 예외 처리는 어떻게 하는게 좋을까요?
특수한 경우가 아니면 도메인 Controller 별로 Advice를 두기 보다는, 공통 Advice 하나에서 우리 시스템의 에러 응답 포맷과 정책을 관리하는 편입니다.
보여주신 예시에서는 GeneralAdvice 하나만 관리하는 형태인 것이죠.
도움이 되셨기를 바랍니다.
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다. 조희제님, 좋은 강의 잘 듣고 계시다니 기쁩니다!
컨트롤러 테스트와 공통 예외 처리에 관한 질문을 주셨군요. 이 주제는 실무에서도 매우 중요합니다.
빈 Validation 필드 테스트:
공통 예외 처리:
@RestControllerAdvice
를 통해 공통 예외 처리를 하고 계시군요. 특정 범위의 예외를 잡기 위한 조언을 basePackages를 설정하여 사용하지만, 일반적인 예외 처리를 위해서는 별도의 GeneralAdvice
를 두는 것도 좋은 방법입니다.Order
로 설정하여 해결하신 것은 적절한 접근입니다. 공통 예외 핸들러와 특정 예외에 대한 핸들러의 중복 처리를 줄이기 위해, 특정 예외는 세밀하게 처리하고 나머지 예외는 일반적인 방식으로 처리하는 전략이 좋습니다.각 회사나 프로젝트의 요구사항에 따라 다를 수 있지만, 이러한 기본적인 가이드라인을 따르면 보다 효율적으로 예외 처리를 할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.