Skip to content

[Feat]: Auth 도메인 테스트 코드 보강 #130

Description

@juwoojae

Issue 요약

Auth 도메인의 주요 인증 기능에 대한 테스트 코드를 보강하여 기능 변경 시 발생할 수 있는 회귀 오류를 방지하고, 인증 로직의 안정성을 높입니다.

로그인, 회원가입, 토큰 재발급, 로그아웃 등 주요 인증 흐름의 성공 및 실패 케이스를 검증하는 단위 테스트를 추가합니다.

Issue 상세

현재 Auth 도메인에는 회원가입, 로그인, JWT 발급 및 재발급, 로그아웃 등 여러 인증 기능이 구현되어 있습니다.

인증 기능은 사용자 접근 권한과 세션 상태를 관리하는 핵심 기능이므로, 정상 동작뿐만 아니라 잘못된 요청이나 만료된 토큰, Redis에 저장된 토큰과의 불일치 등 다양한 예외 상황도 안정적으로 처리되어야 합니다.

이번 이슈에서는 AuthService를 중심으로 주요 인증 로직에 대한 단위 테스트를 보강합니다.

각 테스트는 외부 의존성인 Repository, PasswordEncoder, JWT Provider, Redis 기반 토큰 저장소 등을 Mock 객체로 대체하여 인증 비즈니스 로직을 독립적으로 검증합니다.

테스트 대상에는 다음과 같은 기능이 포함됩니다.

  • 일반 회원가입 성공 및 중복 이메일 예외 처리
  • 로그인 성공 및 존재하지 않는 사용자 예외 처리
  • 로그인 비밀번호 불일치 예외 처리
  • AccessToken 및 RefreshToken 발급 검증
  • RefreshToken 재발급 성공 처리
  • 만료되거나 유효하지 않은 RefreshToken 예외 처리
  • Redis에 저장된 RefreshToken과 요청 토큰이 다른 경우 예외 처리
  • RefreshToken Rotation 적용 여부 검증
  • 로그아웃 시 사용자 인증 정보 확인
  • 로그아웃 시 Redis에 저장된 RefreshToken 삭제 처리
  • 필요한 경우 AccessToken 블랙리스트 등록 처리
  • 인증되지 않은 사용자의 요청에 대한 예외 처리

테스트 메서드는 given-when-then 구조를 사용하고, 테스트 이름만으로 검증하려는 동작을 파악할 수 있도록 작성합니다.

To do

  • AuthService 테스트 클래스 구조 정리
  • 회원가입 성공 테스트 작성
  • 중복 이메일 회원가입 실패 테스트 작성
  • 로그인 성공 테스트 작성
  • 존재하지 않는 사용자 로그인 실패 테스트 작성
  • 비밀번호 불일치 로그인 실패 테스트 작성
  • AccessToken 및 RefreshToken 발급 검증 테스트 작성
  • RefreshToken 재발급 성공 테스트 작성
  • 유효하지 않은 RefreshToken 예외 테스트 작성
  • 만료된 RefreshToken 예외 테스트 작성
  • Redis 저장 토큰 불일치 예외 테스트 작성
  • RefreshToken Rotation 검증 테스트 작성
  • 로그아웃 성공 테스트 작성
  • 로그아웃 시 RefreshToken 삭제 검증
  • 인증되지 않은 사용자 로그아웃 예외 테스트 작성
  • Mock 객체 및 공통 테스트 Fixture 정리
  • 전체 Auth 도메인 테스트 실행 및 통과 확인

Metadata

Metadata

Assignees

Labels

Feat새로운 기능을 추가할 때 사용합니다.

Type

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions