Skip to content

[FEAT]: 시나리오 테스트 코드 작성 #23

@lcs9317

Description

@lcs9317

변경 유형 (Type): FEAT
제목(Subject): 시나리오 테스트 코드 작성

무엇을 / 왜

무엇(What):
Service Layer 단위 테스트 (ScenarioServiceTest.java)

  1. CreateScenarioTests: 시나리오 생성 요청의 전체 비즈니스 플로우 검증 (성공/실패 시나리오, 권한 검증, 중복 방지)

  2. ProcessScenarioGenerationAsyncTests: @async 메서드의 비동기 시나리오 생성 과정 및 상태 전환 검증

  3. GetScenarioStatusTests: 폴링 방식 상태 조회 API 비즈니스 로직 검증

  4. ParseTimelineTitlesTests: 타임라인 제목 JSON 데이터 파싱 및 예외 처리 검증

  5. GetStatusMessageTests: 시나리오 상태별 메시지 생성 로직 검증
    Controller Layer 통합 테스트 (ScenarioControllerTest.java)

  6. CreateScenario: POST /scenarios API의 HTTP 요청/응답 및 validation 검증

  7. GetScenarioStatus: GET /{scenarioId}/status 실시간 상태 조회 API 폴링 동작 검증

  8. GetScenarioDetail: GET /info/{scenarioId} 완성된 시나리오 상세 정보 조회 API 검증

  9. GetScenarioTimeline: GET /{scenarioId}/timeline 시나리오 타임라인 조회 API 및 JSON 응답 구조 검증

  10. GetBaselines: GET /baselines 베이스라인 목록 조회 API 검증

  11. CompareScenarios: GET /compare/{baseId}/{compareId} 시나리오 비교 분석 API 검증
    테스트 설계 및 인프라

  12. Mock 기반 단위 테스트: Repository 계층 Mock 처리로 Service 로직 격리 테스트

  13. 통합 테스트 환경: @SpringBootTest + MockMvc 전체 스택 통합 테스트

  14. 인증 우회 처리: addFilters = false 설정으로 Spring Security 필터 비활성화

  15. 예외 시나리오 커버리지: 권한 없음, 데이터 없음, 중복 생성 등 다양한 예외 상황 테스트

  16. 포괄적 테스트 커버리지: 핵심 비즈니스 로직 90%+ 커버리지 및 모든 API 엔드포인트 검증
    왜(Why):

  17. 핵심 비즈니스 로직 정확성 보장: 시나리오 생성의 복잡한 플로우(비동기 처리, 권한 검증, 중복 방지)가 정확히 동작함을 검증

  18. 비동기 처리 안정성 확보: AI 기반 시나리오 생성의 핵심인 상태 전환(PENDING → PROCESSING → COMPLETED/FAILED) 로직의 신뢰성 보장

  19. 실시간 상태 확인 기능 신뢰성: 사용자가 시나리오 생성 진행상황을 실시간으로 모니터링할 수 있는 핵심 기능의 안정적 동작 보장

  20. 시스템 안정성 확보: AI 생성 타임라인 데이터의 안전한 파싱과 null/빈값 등 엣지 케이스 처리로 런타임 오류 방지

  21. 경험 향상: 시나리오 상태별 직관적이고 정확한 메시지 제공으로 개발자와 사용자의 경험 향상

  22. API 계약 준수: 클라이언트와의 API 계약 준수, 입력 검증, 적절한 HTTP 상태 코드 응답 보장

  23. 프론트엔드 폴링 기능 지원: 프론트엔드의 폴링 기반 상태 확인 기능의 안정적 동작 보장

  24. 완전한 결과 전달 보장: 사용자에게 AI 생성 시나리오의 완전한 결과(5개 지표, 요약, 설명 등)를 정확히 전달

  25. 핵심 시각화 기능 보장: 사용자가 자신의 선택 경로를 시간순으로 시각화할 수 있는 핵심 기능의 정확성 확보

  26. 탐색 기능 안정성: 사용자의 다양한 인생 베이스라인 탐색 기능의 안정적 제공

  27. 핵심 가치 제안 검증: 베이스라인 대비 대안 시나리오의 차이점을 명확히 보여주는 핵심 비즈니스 가치의 신뢰성 확보

  28. 테스트 안정성과 속도: 외부 의존성(DB, AI 서비스) 없이 순수 비즈니스 로직만 검증하여 빠르고 안정적인 테스트 환경 구축

  29. 실제 운영 환경 시뮬레이션: Controller → Service → Repository 전체 플로우가 실제 운영 환경과 유사한 조건에서 정상 동작함을 보장

  30. 개발 단계 맞춤 테스트: 아직 구현되지 않은 인증/인가 시스템에 의존하지 않고 핵심 비즈니스 로직 테스트에 집중

  31. 운영 안정성 보장: 실제 운영에서 발생 가능한 오류 상황에 대한 적절한 예외 처리 및 사용자 친화적 오류 메시지 제공

  32. 지속적 개발 지원: MVP 기능 안정성 확보 및 향후 리팩토링/기능 추가 시 회귀 버그 방지, API 변경 시 Breaking Change 사전 감지

어떻게(요약) — 3줄 이내

Scenario 도메인의 핵심 비즈니스 로직(비동기 시나리오 생성, 상태 관리, 권한 검증)과 6개 REST API 엔드포인트에 대한 포괄적 테스트 작성을 했습니다. Service Layer 단위 테스트로 외부 의존성 없는 순수 비즈니스 로직 검증, Controller Layer 통합 테스트로 실제 HTTP API 동작 검증을 할 수 있도록 테스트코드를 작성했습니다. 추후 타 도메인 완성 및 AI 기능 추가시 업데이트 예정입니다.

영향 범위

  • API 변경
  • DB 마이그레이션
  • Breaking Change
  • 보안/권한 영향
  • 문서/가이드 업데이트 필요

체크리스트

  • 타입 라벨 부착 (FEAT/FIX/REFACTOR/COMMENT/STYLE/TEST/CHORE/INIT)
  • 로컬/CI 테스트 통과
  • 영향도 점검 완료
  • 주석/문서 반영(필요 시)

ToDo (선택)

  • 할 일 1
  • 할 일 2

스크린샷/증빙(선택)


Auto-created for PR #22

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions