Skip to content

[REFACTOR] 테스트 코드 중복 제거 및 구조 통일#273

Merged
kimdanha merged 1 commit into
develop-demofrom
refactor/#272-focus-api
May 18, 2026
Merged

[REFACTOR] 테스트 코드 중복 제거 및 구조 통일#273
kimdanha merged 1 commit into
develop-demofrom
refactor/#272-focus-api

Conversation

@kimdanha
Copy link
Copy Markdown
Contributor

@kimdanha kimdanha commented May 18, 2026

📄 작업 내용 요약

  • 예: 회원가입 API 구현
  • 예: 예외 처리 공통화

📎 Issue 번호


✅ 작업 목록

  • 기능 구현
  • 코드 리뷰 반영
  • 테스트 코드 작성
  • 문서 업데이트

📝 기타 참고사항

Summary by CodeRabbit

릴리스 노트

  • Tests
    • 포커스 관련 테스트 구조를 개선하고 중첩된 테스트 그룹으로 재구성했습니다.
    • 테스트 픽스처를 추가하여 테스트 데이터 설정 방식을 표준화했습니다.
    • 테마 목록 조회 테스트를 통합하고 테스트 명명 규칙을 개선했습니다.

Review Change Stack

@kimdanha kimdanha self-assigned this May 18, 2026
@kimdanha kimdanha linked an issue May 18, 2026 that may be closed by this pull request
3 tasks
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 18, 2026

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dc5fd2be-1289-4ad7-b2f6-294c34f34f2b

📥 Commits

Reviewing files that changed from the base of the PR and between 4aaa4ea and bacf620.

📒 Files selected for processing (5)
  • src/test/java/app/nook/controller/focus/FocusControllerTest.java
  • src/test/java/app/nook/controller/focus/FocusThemeControllerTest.java
  • src/test/java/app/nook/focus/service/FocusServiceTest.java
  • src/test/java/app/nook/global/fixture/FocusFixture.java
  • src/test/java/app/nook/global/fixture/ThemeFixture.java
💤 Files with no reviewable changes (1)
  • src/test/java/app/nook/controller/focus/FocusThemeControllerTest.java

워크스루

포커스 기능의 테스트 코드를 @Nested 어노테이션 기반으로 리팩토링하고, 테스트 픽스처(FocusFixture, ThemeFixture)를 도입하여 테스트 데이터 생성을 표준화합니다. 서비스/컨트롤러 테스트 메서드명을 한국어 기반으로 변경하고, 컨트롤러 테스트에서 ThemeService 목킹을 추가합니다.

변경사항

Test Fixture 및 Nested 구조 도입

Layer / File(s) 요약
Test Fixture 기반 설정
src/test/java/app/nook/global/fixture/FocusFixture.java, src/test/java/app/nook/global/fixture/ThemeFixture.java
FocusFixture와 ThemeFixture를 새로 추가하여 테스트에서 Book, Focus, Theme 엔티티 생성을 표준화합니다. 리플렉션을 통해 고정 id값을 주입하고 기본 속성을 설정합니다.
FocusService 중첩 구조 리팩토링
src/test/java/app/nook/focus/service/FocusServiceTest.java
테스트 클래스를 StartFocus와 EndFocus 중첩 클래스로 구조화합니다. 픽스처 기반 setUp으로 엔티티 생성을 단순화하고, 테스트 메서드명을 한국어로 변경하며, 성공 케이스 assertion을 확장합니다(책 제목/저자/테마명 검증 추가).
FocusController 중첩 구조 리팩토링 및 ThemeService 통합
src/test/java/app/nook/controller/focus/FocusControllerTest.java, src/test/java/app/nook/controller/focus/FocusThemeControllerTest.java
FocusControllerTest를 @Nested로 리팩토링하고 ThemeService 목킹을 추가합니다. 테마 목록 조회 엔드포인트 테스트를 통합하고 응답 필드 문서화(bookId, bookTitle, author)를 확장합니다. FocusThemeControllerTest는 제거됩니다.

예상 코드 검토 노력

🎯 3 (중간) | ⏱️ ~25분

관련 가능성 있는 PR

  • UMC-NOOK/Server#220: 포커스 테마 엔드포인트 테스트를 리팩토링하고 /api/v1/focuses/themes 커버리지를 FocusControllerTest로 통합하며, ThemeService.getThemes()를 목킹하고 result.themes[] 필드를 문서화합니다.

  • UMC-NOOK/Server#234: FocusControllerTest에서 /api/focuses/themes, /api/focuses/start, /api/focuses/end 엔드포인트의 REST Docs assertion을 리팩토링·확장하고, FocusThemeControllerTest를 제거합니다.

🐰 테스트를 정리하는 토끼의 노래
Nested 계층으로 깔끔하게 구조화하고,
Fixture로 엔티티는 반복 없이,
한국어 메서드명으로 의도를 명확하게,
서비스부터 컨트롤러까지 일관된 테스트 ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 테스트 코드 중복 제거 및 구조 통일이라는 주요 변경사항을 명확하게 요약하고 있습니다.
Linked Issues check ✅ Passed 포커스 메서드 중복 제거, Nested 어노테이션 사용, 테스트코드 구조 개선이 모두 구현되었습니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 테스트 코드 리팩토링과 테스트 픽스처 추가로 연결된 이슈의 범위 내에 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/#272-focus-api

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@kimdanha kimdanha merged commit c40fca5 into develop-demo May 18, 2026
3 of 4 checks passed
@kimdanha kimdanha deleted the refactor/#272-focus-api branch May 18, 2026 05:12
@JiwonLee42
Copy link
Copy Markdown
Contributor

Overall Project 67.2% 🍏

There is no coverage information present for the Files changed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REFACTOR] Focus API 리팩토링

2 participants