자동차가 완성되기전에 나무, 점토를 이용하여 실제 자동차와 동일한 크기에 모형을 만드는 행위가 Mock이라고 한다. 일반적으로 Mock이란, 조각하기 쉬운 재료를 이용해 추후 만들어질 제품의 외양을 흉내 낸 모조품을 말한다. 마찬가지로 소프트웨어 개발에 있어서도 모듈의 겉모양이 실제 모듈과 비슷하게 보이도록 만든 가짜 객체를 Mock 객체라고 한다.
실제 재료로 만들려면 비용과 시간이 많이 들기 때문에, 비교적으로 제작하기 쉽고 비용이 덜 드는 나무, 점토로 만들어본것이다. 마찬가지로 실제 객체를 만들기엔 비용과 시간이 많이 들거나 의존성이 길게 걸쳐져 있어 제대로 구현하기 어려울 경우에 가짜 객체를 만들어서 사용한다.
테스트 작성을 위한 환경 구축이 어려울 때
환경 구축을 위한 작업 시간이 많이 필요한 경우에 Mock 객체를 사용한다. 오라클 DB를 설치해야 테스트가 가능한다든가, 웹 서버나, 웹 애플리케이션 서버, FTP 서버 등을 설치해야만 테스트가 가능해질 경우
특정 모듈이 아직 갖고 있지 않아서 테스트 환경을 구축하지 못할 경우
특정 모듈이 개발이 되지 않았거나, 혹은 누군가에게 모듈을 아직 넘겨받지 못할 경우
테스트가 특정 경우나 순간에 의존적인 경우
테스트 시간이 오래 걸릴 경우
시간이 오래 걸리는 테스트가 있을 수 있다. 개인 PC의 성능이나 서버의 성능 문제로 인해 오래 걸릴 수도 있지만, 특정한 모듈을 호출했을 때, 속칭 멀리 갔다 오느라 시간이 걸리는 경우