-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
🛠️ Issue Description
일자리 찾기 기능(JobService, JobOpenApiClient)의 핵심 비즈니스 로직(Redis 캐싱, 외부 API 조건부 호출, 데이터 변환)에 대한 단위 테스트 코드를 작성하여 기능의 신뢰성을 확보합니다.
💭 How to test
JobService를 중심으로 테스트하며, 모든 외부 의존성(External Dependency)을 Mocking하여 순수한 비즈니스 로직을 검증합니다.
Mocking 대상:
- JobOpenApiClient: Mocking하여 외부 API의 응답(성공/실패/특정 데이터)을 제어하고, 실제 API 호출 여부 및 전달된 파라미터를 검증합니다.
- RedisUtil: Mocking하여 Redis 캐시의 HIT 및 MISS 상황을 제어하고, 데이터 저장(save) 호출 여부를 검증합니다.
주요 검증 항목:
캐시 HIT 시 API 호출 건너뛰기 여부.
고용형태 'ALL' 입력 시 API 파라미터가 생략되는지 여부.
API 서버 오류(5xx) 시 WebClient의 재시도(Retry) 로직 정상 작동 여부.
상세 조회 시 캐시된 job:extra 데이터와 상세 API 응답의 조합 로직 검증.
📝 check-lists
- 목록 캐싱 로직 검증:
- Cache Miss 시 Open API 호출 및 jobs:list, job:extra 캐시 저장 확인.
- Cache Hit 시 Open API 호출 없이 캐시된 데이터 반환 확인.
- 고용형태 필터링 로직 검증:
- empType에 "ALL" 입력 시 JobOpenApiClient 호출 시 emplymShp 파라미터가 생략되는지 확인.
- 상세 조회 데이터 조합 검증:
- job:detail Cache Miss 및 job:extra Cache Hit 시 데이터 조합 후 반환 확인.
- job:extra Cache Miss (데이터 누락) 시 **"정보 없음"**으로 대체 처리되는지 확인.
- API 클라이언트 안정성 검증 (WebClient):
- Open API 호출 시 5xx 서버 오류 발생 시 3회 재시도 로직이 정상 작동하는지 확인.
- Enum을 사용한 타입 변환 (mapEmploymentType, mapApplyMethod)이 정확한 displayName을 반환하는지 확인.
- 마감일 D-day 계산 로직(calculateDday)의 정확성 검증.
- Cache Miss 시 Open API 호출 및 jobs:list, job:extra 캐시 저장 확인.
- Cache Hit 시 Open API 호출 없이 캐시된 데이터 반환 확인.
- 고용형태 필터링 로직 검증:
- empType에 "ALL" 입력 시 JobOpenApiClient 호출 시 emplymShp 파라미터가 생략되는지 확인.
- 상세 조회 데이터 조합 검증:
- ob:detail Cache Miss 및 job:extra Cache Hit 시 데이터 조합 후 반환 확인.
- job:extra Cache Miss (데이터 누락) 시 **"정보 없음"**으로 대체 처리되는지 확인.
- API 클라이언트 안정성 검증 (WebClient):
- Open API 호출 시 5xx 서버 오류 발생 시 3회 재시도 로직이 정상 작동하는지 확인.
- Enum을 사용한 타입 변환 (mapEmploymentType, mapApplyMethod)이 정확한 displayName을 반환하는지 확인.
- 마감일 D-day 계산 로직(calculateDday)의 정확성 검증.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels