구글 제미나이 CLI를 이용한 자동 커밋 메세지 작성 방법
[refactor] 서비스 단위 테스트의 Mockito 사용법 통일 및 수정 (#81)
작업 내용
4
5 ### 문제점
6 - `PlanService`, `TemplateService`, `GoalService` 등 여러 서비스의 단위 테스트에서 공통적인
Mockito 사용 오류가 발견되었습니다.
7 - 서비스 메소드에 `userId`가 전달될 경우, 내부적으로 `User` 객체를 포함한 메소드가 호출되지만
테스트 코드의 Mocking은 이 시그니처를 반영하지 못하고 있었습니다.
8 - 이로 인해 테스트 실행 시 `NullPointerException` 또는 Mockito의 `InvalidUseOfMatchersException`
이 발생하여 테스트가 실패했습니다.
9
10 ### 해결 방안
11 - 프로젝트 전반에 걸쳐 when() 구문에서 인자를 Mocking할 때, 모든 인자에 eq(), any()와 같은
Matcher를 사용하도록 규칙을 통일했습니다.
12 - userId의 존재 여부에 따라 올바른 시그니처를 가진 메소드가 Mocking되도록 테스트 코드를
수정했습니다.
13 - 이 과정에서 누락되었던 User 클래스 및 Mockito Matcher (any, eq)에 대한 import 구문을
추가하여 컴파일 오류를 해결했습니다.
14
15 ### 수정한 파일
16 - GoalServiceTest.java
17 - PlanServiceTest.java
18 - TemplateServiceTest.java
19 - GoalCreateResponseDTO.java
20 - GoalRepositoryTest.java
핵심이 뭔지 집중해봐야하지 않을까요? 불필요한 일들은 ai에게 맡기고 내가 집중해야할 일에 진짜 집중하기