-
Notifications
You must be signed in to change notification settings - Fork 0
test: 피드백 줌 태스크 테스트코드 #131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
Walkthrough네 개의 새로운 테스트 클래스를 추가하여 FeedbackService, TaskService, ZoomAttendanceService, ZoomStatisticsService의 단위 테스트 커버리지를 확대합니다. Mockito 기반의 종합적인 테스트 스위트로 주요 기능, 예외 처리, 접근 제어를 검증합니다. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes 추가 검토 주의 사항:
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
techeerzip/src/test/java/backend/techeerzip/domain/zoom/service/ZoomStatisticsServiceTest.java (1)
31-31: 사용하지 않는 import 제거
Role클래스가 import 되었지만 실제로 사용되지 않습니다.-import backend.techeerzip.domain.role.entity.Role;techeerzip/src/test/java/backend/techeerzip/domain/task/service/TaskServiceTest.java (2)
140-152: 빈 리스트 처리 테스트가 잘 작성되었습니다.빈 URL 리스트에 대해 큐 전송이 발생하지 않음을 올바르게 검증합니다. 단,
Arrays.asList()보다List.of()또는Collections.emptyList()가 더 명확합니다.- List<String> emptyBlogUrls = Arrays.asList(); + List<String> emptyBlogUrls = List.of();
275-309: 테스트 이름과 실제 검증 내용 불일치
validateGoMQDataFormat과validatePythonMQDataFormat테스트는 실제로 데이터 형식을 검증하지 않고 큐 타입만 확인합니다. 테스트 이름을 명확하게 하거나ArgumentCaptor를 사용하여 실제 데이터 구조를 검증하는 것을 고려해 주세요.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
techeerzip/src/test/java/backend/techeerzip/domain/feedback/service/FeedbackServiceTest.java(1 hunks)techeerzip/src/test/java/backend/techeerzip/domain/task/service/TaskServiceTest.java(1 hunks)techeerzip/src/test/java/backend/techeerzip/domain/zoom/service/ZoomAttendanceServiceTest.java(1 hunks)techeerzip/src/test/java/backend/techeerzip/domain/zoom/service/ZoomStatisticsServiceTest.java(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
techeerzip/src/test/java/backend/techeerzip/domain/zoom/service/ZoomStatisticsServiceTest.java (1)
techeerzip/src/main/java/backend/techeerzip/domain/user/exception/UserNotFoundException.java (1)
UserNotFoundException(6-10)
techeerzip/src/test/java/backend/techeerzip/domain/feedback/service/FeedbackServiceTest.java (5)
techeerzip/src/main/java/backend/techeerzip/domain/feedback/exception/FeedbackInvalidRecipientException.java (1)
FeedbackInvalidRecipientException(6-10)techeerzip/src/main/java/backend/techeerzip/domain/feedback/exception/FeedbackInvalidTypeException.java (1)
FeedbackInvalidTypeException(6-10)techeerzip/src/main/java/backend/techeerzip/domain/feedback/exception/FeedbackNotFoundException.java (1)
FeedbackNotFoundException(6-10)techeerzip/src/main/java/backend/techeerzip/domain/feedback/exception/FeedbackSelfRequestException.java (1)
FeedbackSelfRequestException(6-10)techeerzip/src/main/java/backend/techeerzip/domain/user/exception/UserNotFoundException.java (1)
UserNotFoundException(6-10)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔇 Additional comments (15)
techeerzip/src/test/java/backend/techeerzip/domain/zoom/service/ZoomStatisticsServiceTest.java (3)
47-121: 테스트 구조가 잘 작성되었습니다.사용자 Zoom 통계 조회 테스트가 given/when/then 패턴을 잘 따르고 있으며, 성공 케이스, 사용자 미존재 예외, 빈 데이터 반환 케이스를 모두 검증하고 있습니다.
123-236: 월별 1등 사용자 조회 테스트가 잘 작성되었습니다.다양한 시나리오(데이터 존재, 데이터 없음, 미등록 사용자, 다중 사용자)를 커버하여 서비스 로직의 정확성을 효과적으로 검증합니다.
238-263: 헬퍼 메서드가 잘 구성되었습니다.Mock 객체 생성을 위한 헬퍼 메서드들이 코드 중복을 줄이고 테스트의 가독성을 높입니다.
techeerzip/src/test/java/backend/techeerzip/domain/task/service/TaskServiceTest.java (3)
60-106: 블로그 크롤링 태스크 테스트가 적절합니다.SIGNUP_BLOG_FETCH와 DAILY_UPDATE 태스크 타입에 대해 올바른 큐 타입과 Redis 상호작용을 검증하고 있습니다.
178-273: 이력서 추출 및 CS 채점 테스트가 잘 구성되었습니다.다양한 사용자 ID와 빈 데이터 케이스를 포함하여 Redis 상태 업데이트와 올바른 큐 타입 사용을 검증합니다.
311-355: TaskType별 큐 매핑 검증이 잘 작성되었습니다.여러 TaskType에 대해 올바른 큐로 전송되는지 효율적으로 검증합니다.
techeerzip/src/test/java/backend/techeerzip/domain/zoom/service/ZoomAttendanceServiceTest.java (5)
40-71: API 연결 테스트가 적절합니다.성공과 실패 케이스를 모두 검증하며 ZoomApiClient 호출을 확인합니다.
73-128: 웹훅 이벤트 처리 테스트가 잘 구성되었습니다.입장, 퇴장, 알 수 없는 이벤트 타입에 대한 처리를 명확하게 검증합니다.
130-202: 참가자 입장 이벤트 테스트가 우수합니다.
argThat을 사용한 상세 검증과 null/누락된 정보에 대한 엣지 케이스 처리가 잘 되어 있습니다.
204-285: 참가자 퇴장 이벤트 테스트가 포괄적입니다.퇴장 시간 업데이트, 기록 없음, 소회의실 이벤트 무시, null 처리 등 다양한 시나리오를 잘 커버합니다. 특히 소회의실 관련 이벤트 필터링 테스트가 Zoom 도메인 특성을 잘 반영합니다.
287-324: 헬퍼 메서드가 잘 설계되었습니다.다양한 웹훅 이벤트 시나리오를 생성하는 헬퍼 메서드들이 테스트의 가독성과 유지보수성을 높입니다.
techeerzip/src/test/java/backend/techeerzip/domain/feedback/service/FeedbackServiceTest.java (4)
62-101: 테스트 픽스처 설정이 잘 구성되었습니다.멘토/비멘토 역할, 다양한 사용자, 피드백 엔티티, 사용자 주체 등 필요한 모든 mock 객체가 명확하게 설정되어 있습니다.
103-219: 피드백 생성 테스트가 포괄적입니다.성공 케이스와 함께 요청자 미존재, 잘못된 수신자, 자기 자신에게 요청, 잘못된 타입 등 모든 검증 시나리오를 커버합니다. 자기 요청 테스트(Line 178-180)에서 수신자 검증을 통과하도록 멘토 역할을 설정한 것이 적절합니다.
221-265: 피드백 승인 테스트가 잘 작성되었습니다.권한 검증(멘토 여부)과 유효성 검증(시간 선택)을 포함하여 주요 시나리오를 커버합니다.
267-500: 나머지 테스트 메서드들이 일관되게 작성되었습니다.거절, 조회, 수정, 삭제, 가이드라인 관리 등 모든 CRUD 작업에 대해 성공/실패 케이스를 일관된 패턴으로 검증합니다. 특히 멘토 가이드라인 수정 시 권한 검증 테스트(Lines 488-499)가 적절합니다.
|



요약
피드백, 줌, 태스크, 인프라 테스트코드 작성
작업 내용
피드백, 줌, 태스크, 인프라 서비스로직 테스트코드 작성
참고 사항
관련 이슈
BACKEND-
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.