Skip to content

[SCRUM-5] QueryWaitingQueueService 단위 테스트 작성 및 ReactiveCacheManager Supplier 적용 - #5

Open
pjh612 wants to merge 1 commit into
developfrom
feature/SCRUM-5-query-waiting-queue-service-test
Open

[SCRUM-5] QueryWaitingQueueService 단위 테스트 작성 및 ReactiveCacheManager Supplier 적용#5
pjh612 wants to merge 1 commit into
developfrom
feature/SCRUM-5-query-waiting-queue-service-test

Conversation

@pjh612

@pjh612 pjh612 commented Feb 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • QueryWaitingQueueService.getWaitingQueue() 단위 테스트 4개 작성 (커버리지 100%)
  • ReactiveCacheManager.getOrSet() 파라미터를 Mono<T>Supplier<Mono<T>>로 변경하여 lazy 평가 계약을 API 시그니처에 명시
  • ReactiveRedisCacheManager 내부에서 Mono.defer(fallback) 호출로 lazy 평가를 캐시 매니저가 직접 강제

변경 파일

파일 변경 내용
ReactiveCacheManager.java getOrSet() 파라미터 타입 Supplier<Mono<T>>로 변경
ReactiveRedisCacheManager.java Mono.defer(fallback) 적용
QueryWaitingQueueService.java fallback을 람다(() -> ...)로 전달
QueryWaitingQueueServiceTest.java 신규 단위 테스트 작성

테스트 시나리오

  • getWaitingQueue_캐시HIT_캐시결과반환 — 캐시 히트 시 repository 미호출 검증
  • getWaitingQueue_캐시MISS_레포지토리조회후3600초TTL로캐싱 — 캐시 미스 시 repository 호출 및 TTL=3600 검증
  • getWaitingQueue_유효하지않은API키_에러반환 — 잘못된 키 조회 시 에러 전파 검증
  • getWaitingQueue_캐시키형식검증"queue:" + apiKey 형식 캐시 키 생성 검증

커버리지 결과 (QueryWaitingQueueService)

항목 커버리지
INSTRUCTION 100%
LINE 100%
METHOD 100%
CLASS 100%

Test plan

  • 단위 테스트 4개 통과 확인
  • JaCoCo 커버리지 100% 확인

Jira: SCRUM-5

🤖 Generated with Claude Code

…upplier 적용

- QueryWaitingQueueServiceTest 작성 (캐시 HIT/MISS, 에러 반환, 캐시 키 형식 검증)
- ReactiveCacheManager.getOrSet() 파라미터를 Mono<T>에서 Supplier<Mono<T>>로 변경하여 lazy 평가 계약을 API 시그니처에 명시
- ReactiveRedisCacheManager 내부에서 Mono.defer(fallback) 호출로 lazy 평가 강제
- QueryWaitingQueueService 호출부를 람다 방식으로 변경

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@pjh612 pjh612 added the test label Feb 27, 2026
@pjh612 pjh612 self-assigned this Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant