•
Dummy 객체가 실제로 동작하는 것처럼 보이게 만들어놓은 객체이다.
•
인터페이스 또는 기본 클래스가 최소한으로 구현된 상태다.
•
테스트에서 호출된 요청에 대해 미리 준비해둔 결과를 제공한다.
•
테스트를 위해 정해둔 결과를 반환해주는 존재하는 객체라고 생각하면 된다.
•
Fake와 유사하게 동작하지만 실제 구현이 아닌 단순 테스트 로직 검증을 위한 로직이라는 점에서 다르다.
public class StubUserProfileRepository implements UserProfileRepository {
private Map<Long, UserProfile> userProfiles = new HashMap<>();
@Override
public void save(UserProfile userProfile) {}
@Override
public UserProfile findByUserId(long userId) {
return new UserProfile(...);
}
}
Java
복사
•
이 경우, 테스트가 수정될 경우 Stub 객체의 반환 객체도 수정해야할 가능성이 있다는 단점이 있다.
•
Java 단위 테스트에선 Mockito 테스트 프레임워크가 대표적이다.
•
즉 테스트를 위해 준비된 결과만 반환하도록 하기 위한 객체가 Stub이다.