본문 바로가기
won2dev-log
HomeArchiveTagsCategoriesAboutProjects
HomeArchiveTagsCategoriesAboutProjects
won2dev-logwon2dev-logwon2dev-log

비전공 개발자의 로그 | won2dev-log

Navigation
  • Home
  • Archive
  • About
  • Projects
Categories
  • Docs
  • TIL
  • Automation
  • Git · GitHub
  • Project
Tags
  • TIL
  • Java
  • Spring
  • Backend
  • n8n
더보기
About

기록을 거름 삼아 공유는 성장을 만든다.

LicensePrivacy
© won2dev 2026. All rights reserved.
Home›TIL›TIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트
TIL

TIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트

won2dev·2026년 04월 10일
#TIL#Spring

학습 키워드

  • 단위 테스트
  • Mock Object (가짜 객체)
  • Mockito Framework
  • Stubbing

학습 한 내용

왜 Mock(가짜 객체)이 필요한가?

ProductService를 테스트하려고 보니, ProductRepository 등 여러 의존성을 가지고 있다.

  • 문제점: 서비스만 테스트하고 싶은데 실제 Repository를 사용하면 DB 연결이 필요해지고, 테스트가 무거워진다. 결국 서비스 하나 테스트하려다 DB까지 끌어다 쓰는 '통합 테스트'가 되어버린다.
  • 해결책: 실제 객체와 똑같이 생겼지만, 알맹이는 내가 조종할 수 있는 가짜 객체(Mock)를 주입해서 서비스 로직만 떼어내어 테스트한다.

Mockito: 가짜 객체 제조기

Mockito는 가짜 객체를 쉽게 만들고 관리해 주는 라이브러리다. 즉 외부 의존성을 Mock으로 대체하여 비즈니스 로직을 독립적으로 테스트할 수 있게 해주는 도구이다.

  1. Mock 생성: ProductRepository의 가짜 버전을 만든다.
  2. Stubbing: "가짜 Repository는 누군가 findById(100L)를 호출하면 미리 준비한 Product 객체를 줘 라고 미리 교육시킨다.
  3. 테스트 실행: ProductService에 이 가짜 객체를 주입하고 메서드를 실행한다.

단위 테스트의 분리

  • 기존: Controller -> Service -> Repository (모두 연결되어 있어 하나만 테스트하기 어려움)
  • Mockito 적용 후: Service <-> MockRepository (Repository를 가짜로 대체하여 Service의 로직만 순수하게 검증 가능)
공유하기
이전 글TIL - MSA 핵심 요소 정리다음 글 TIL - (3) Spring 어노테이션 정리: Lombok Getter, Setter와 생성자

목차

  • 학습 키워드
  • 학습 한 내용
  • 왜 Mock(가짜 객체)이 필요한가?
  • Mockito: 가짜 객체 제조기
  • 단위 테스트의 분리

카테고리

TIL

태그

#TIL#Spring

최근 글

Git 요약 (1) - Rebase, Stash, Squash MergeTIL - MSA 핵심 요소 정리TIL - (3) Spring 어노테이션 정리: Lombok Getter, Setter와 생성자TIL - (2) Spring MVC와 WebFlux의 차이: 블로킹과 논블로킹TIL - (1) Spring 아키텍처, Go랑 비교하며 이해한 것들