테스트 목적으로 사용되는 실제 객체의 대역
Mock과 Stub의 차이
stub을 포함한 다른 test double들은 상태 검증을 사용, mock 오브젝트는 행위 검증 사용.
상태 검증 (state varification) : 메소드 수행된 후, 객체 생태 올바르게 동작했는지 확인
// 예제 1
StateClass stateClass = new StateClass();
stateClass.doSomething();
// 객체 상태를 확인
assertThat(stateClass.getStatus()).isEqualTo(true);
// 예제 2
public class SimpleService implements Service {
}
행위 검증 (behavior verification) : 메소드의 리턴값을 힐당할 수 없는 경우 특정 동작 수행 가능
// 예제 1
BehaviorClass behaviorClass = new BehaviorClass();
// 특정 동작 결과 확인
verify(behaviorClass).doBehavior();
-> 검증이 대상이 다르다.
어떻게 호출받았
stub : single fake obj