테스트 대상 코드와 상호작용하는 가짜 객체이다
하나의 객체는 다른 객체들과 협력관계(의존성)을 가지는데 여기서 협력관계를 가지는 다른 객체들을 협력 관계자라고 부른다.
협력관계자들을 같이 묶어서 테스트하지 않고 Test Double로 대체해서 SUT(테스트 대상)의 고립된 테스트를 진행한다.
생성자를 통해서 다른 객체의 의존성을 주입받을 때, 실제 객체를 주입받는 것이 아니라 Test Double로 대체해서 전달받음.
상태(state) 검증(확인)
가짜 객체, 실제 동작하는것처럼 보이게 만드는 객체
행위(behavior) 검증
호출에 대한 기대 명세, 이때 어떻게 동작해야하는지 기술
특정 동작/메소드가 호출되어질 것이다를 기대
ex> Mockito