프로그래밍/JAVA

테스트 더블(Test Double)-> 목 객체(Mock Object)

Cognivox 2025. 4. 8. 12:43
반응형

✅ **목 객체(Mock Object)**란?

실제 객체를 대신해 테스트 용도로 만든 가짜 객체

  • 원래는 DB, API, 파일 등 외부 자원이 필요한데
    그거 없이 테스트할 수 있게 만든 가짜 객체야.
  • 테스트 대상 함수가 의존하는 객체를 흉내 내서
    → 결과값을 미리 정해두고, 테스트를 깔끔하게 할 수 있어.

📌 왜 써?

1️⃣ 외부 의존 없이 테스트 가능
2️⃣ 예측 가능한 결과로 빠르게 테스트
3️⃣ 비용 절감 (DB 호출, API 호출 생략)
4️⃣ 단위 테스트에 딱 맞음

📌 핵심 요약:

실제 객체 흉내 내는 가짜 객체
외부 의존 제거 → 단위 테스트에 유용

📍목 객체를 써야 할 때

1️⃣ 외부 시스템에 의존할 때

  • 예: DB, API, 파일 시스템 등
    ➡ 테스트할 때 속도 느림, 비용 큼, 에러 발생 위험
    ➡ 그래서 가짜(Mock) 만들어서 빠르고 안전하게 테스트함

2️⃣ 아직 구현되지 않은 모듈이 있을 때

  • 예: 다른 팀에서 만드는 기능이 아직 없음
    ➡ 대신 임시로 목 객체 만들어 테스트 먼저 진행 가능

3️⃣ 예외 상황을 인위적으로 만들고 싶을 때

  • 예: API가 오류를 반환하거나 DB 연결이 실패하는 상황
    ➡ 진짜 객체로는 만들기 힘들지만, 목 객체는 쉽게 조작 가능

4️⃣ 호출 여부나 횟수 확인이 필요할 때

  • 예: 어떤 함수가 정확히 한 번 호출됐는지 테스트
    ➡ 목은 이런 행동(behavior) 검사도 가능함

💡 한 줄 요약

실제 객체 쓰기 어려울 때, 대신하는 가짜를 써서 더 빠르고 안정적으로 테스트하려고 쓰는 것

#목객체 #MockObject #유닛테스트 #단위테스트 #테스트더블 #Mockito #unittestmock #테스트자동화 #TDD #테스트코드 #가짜객체 #스텁 #스파이 #API테스트 #DB테스트 #의존성제거 #테스트전략 #행위기반테스트 #파이썬테스트 #자바테스트#자바 #java

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

깃발 변수(Flag Variable)  (0) 2025.04.08
테스트 더블(Test Double) : Mock, Stub, Spy의 차이  (0) 2025.04.08
단위 테스트  (0) 2025.04.08
화이트박스 테스트 or 블랙박스 테스트  (0) 2025.04.08
유클리드 호제법  (0) 2025.04.07