Skip to content

MSG-442 test: 구독 복합키 동등성 계약 검증 추가 - #201

Merged
s13121312 merged 1 commit into
developfrom
feature/MSG-442-id-equality-test
Aug 21, 2026
Merged

MSG-442 test: 구독 복합키 동등성 계약 검증 추가#201
s13121312 merged 1 commit into
developfrom
feature/MSG-442-id-equality-test

Conversation

@s13121312

@s13121312 s13121312 commented Aug 21, 2026

Copy link
Copy Markdown
Member

🎫 관련 티켓

  • Relates to MSG-442 (머지된 #199의 후속 보완)

작업 내용

  • EventNotificationSubscriptionId(행사 알림 구독 복합 기본키)의 동등성 계약 테스트 1건을 추가합니다. JaCoCo가 이 클래스 커버리지 16.98%를 보고했는데, 런타임 경로(existsById)가 DB 쿼리로 나가서 자바 equals를 태우지 않아 분기 8개가 전부 미실행이었기 때문입니다.
  • UserGridTest의 복합키 동등성 테스트 선례와 같은 형태로, 자기 참조·같은 쌍 동등(+hashCode 동일)·필드별 비동등·타입 불일치·null까지 분기 전부를 검증합니다.
  • 클래스 커버리지 실측 16.98% → 100% (INSTRUCTION 53/53 · BRANCH 8/8), 전체 스위트 2,160건 green.

🤔 고민한 내용

  • JPA 복합키의 equals/hashCode는 영속성 컨텍스트 정체성 계약이라 보일러플레이트여도 검증 가치가 있고, 레포 관례(UserGridId)도 이미 테스트를 두고 있어 관례 정합 쪽을 택했습니다.
  • 위치는 저장소 테스트가 아니라 event/entity/ 순수 JUnit입니다 — equals 한 건 때문에 @SpringBootTest 컨텍스트를 끌고 오지 않기 위해서입니다.

👀 리뷰 포인트

  • 테스트 1파일 추가뿐이라 프로덕션 코드 변경이 없습니다.

JaCoCo가 EventNotificationSubscriptionId 16.98%를 보고 — existsById는 DB 쿼리로 가서 자바 equals를 태우지 않아 분기 8개가 전부 미실행이었다. UserGridTest 선례 동형의 계약 테스트 1건으로 분기 100%.
@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown

Claude finished @s13121312's task in 1m 20s —— View job


리뷰 완료

확인 범위

  • origin/develop 대비 diff: 테스트 파일 1개(+32) 외 변경 없음 — 마이그레이션·developCode 대역·Owner 계약 인터페이스 해당 사항 없음
  • EventNotificationSubscriptionId.java의 실제 equals/hashCode 구현과 테스트의 자기 참조·동일 값·필드별 비동등·타입 불일치·null 분기를 1:1 대조 — 전부 실제 분기와 일치
  • docs/spec/MSG-442.md: 이 복합키는 스펙에 정의된 그대로(userId, eventOccurrenceId)이며 테스트가 스펙 밖 동작을 주장하지 않음
  • EventNotificationSubscriptionRepositoryTest의 기존 existsById 테스트와 겹치지 않음(그쪽은 리포지토리 쿼리 경로, 이번 건은 equals/hashCode 직접 호출)
  • 선례 UserGridTest와 비교해 스타일 일관 (오히려 자기 참조·타입 불일치·null 케이스가 추가돼 더 촘촘함)

발견: 없음

참고: 샌드박스 권한 제약으로 ./gradlew test 직접 실행은 못 했습니다 — PR 본문의 커버리지 수치(16.98% → 100%)·스위트 2,160건 green은 코드 대조로 타당성만 확인했고 실측 재현은 하지 않았습니다.

@github-actions

Copy link
Copy Markdown

테스트 커버리지

Overall Project 95.06% 🍏

There is no coverage information present for the Files changed

@s13121312
s13121312 merged commit 94198a5 into develop Aug 21, 2026
2 checks passed
@s13121312
s13121312 deleted the feature/MSG-442-id-equality-test branch August 21, 2026 05:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant