Skip to content

[Refactor] Homework 도메인 테스트 작성 및 구조 개선#122

Open
beomzun wants to merge 10 commits intodevfrom
refactor/#121
Open

[Refactor] Homework 도메인 테스트 작성 및 구조 개선#122
beomzun wants to merge 10 commits intodevfrom
refactor/#121

Conversation

@beomzun
Copy link
Contributor

@beomzun beomzun commented Nov 26, 2024

📄 Description

📌 구현 내용

  • API 경로 앞에 누락된 /api 추가
  • 요청 객체의 String 타입 필드에 대해 NotEmpty에서 NotBlank로 수정하여 검증 강화
  • Homework 업데이트 요청 시 조회 객체에서 사용하던 DetailedHomeworkDto를 재사용하지 않고 UpdateHomeworkRequest 객체를 사용.
  • Homework 완료여부를 수정하는 메서드의 파라미터명 수정 (newDone -> doneStatus)하여 직관성 향상
  • 단일 서비스 클래스에서 서비스 인터페이스와 이에 대한 구현체로 분리
  • 도메인별 에러코드 사용
  • 숙제범위 검증을 위한 커스텀 어노테이션 사용
    • 이전의 시험날짜 검증을 위한 어노테이션을 공통화하였고, 각 도메인의 요구사항에 맞춰 구체화
  • Homework 도메인에 대한 Controller, Service 테스트 작성

✅ PR 포인트

검증 인터페이스 - RangeValidator
를 구현한 Validator 구현체 - NumberRangeValidator, DateRangeValidator
Validator 동적 선택 클래스 - DynamicRangeValidator
타입과 Validator 구현체 매핑 관리 클래스 - RangeValidatorFactory

검증 객체에 ValidRange 어노테이션 선언 및 호출 -> DynamicRangeValidator 초기화. 검증 객체의 필드명 획득 -> isValid 호출. 필드값 획득 -> 필드타입에 따라 RangeValidatorFactory에서 타입과 매핑되는 RangeValidator 획득 -> validator의 isValid를 통해 검증
**검증 실패 시 실패 정보가 BindingResult 객체에 추가된 후 MethodArgumentNotValidException 발생

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Refactor] Homework 도메인 테스트 작성 및 구조 개선

1 participant