Mock

pepe·2025년 11월 11일

Mock이란?

진짜 객체 대신 가짜 객체를 만들어서 사용하는 것
즉, 테스트를 쉽게 하기 위해 만드는 가짜 객체이다.

“service야. 너 진짜로 동작하지 말고,
내가 원하는 값만 반환해 주면 돼.”


Mock이 만들어진 이유

테스트는 작고, 빠르고, 독립적이어야 한다. 그런데 문제가 있다.

  1. 현실의 객체들은 서로 의존하고 복잡하다.
  2. 테스트 환경을 세팅하는 것이 너무 복잡하다

위의 해결책이 바로 가짜 객체를 써서 테스트를 하는 것


Mock을 왜 쓰는가

  1. 빠른 테스트
    Mock은 코드만 돌아가므로 빠르고 안정적이다.
    파일 I/O, DB 연결 등을 실제로 하면 느리고, 환경에 따라 실패할 수 있다.

  2. 테스트 대상에 집중할 수 있음
    어떤 대상이 출력/흐름을 잘 처리하는지 테스트 하고싶은데
    계층과 DB 등등이 모두 엮이면 어느 계층에서 잘못된 것인지 알 수 없다.
    Mock은 의존성 격리를 해줘서 원하는 대상에만 테스트를 할 수 있다.

  3. 예외 상황을 만들기 쉽다

테스트 할 때 팁

함수이름은 스네이크케이스와 카멜케이스를 섞어서
given(상황)_when(행동)_then(기대결과) 식으로 쓴다.

profile
pepe

0개의 댓글