•
Stub의 역할을 수행하면서도 호출된 내용에 대해 약간의 정보를 기록하는 객체다.
•
테스트 더블을 이용해서 구현된 객체에서 호출되었을 때, 확인이 필요한 부분을 기록하도록 구현되어 있다.
•
Fake처럼 실제 객체처럼 동작시킬 수 있고 일부는 Stub으로 만들어서 동작을 지정할 수 있다.
public class EmailService {
private int sentEmailCount = 0;
private Collection<Email> sentEmails = new ArrayList<>();
public void sendEmail(Email email) {
sentEmailCount++;
sentEmails.add(email);
}
public long getSentEmailCount() {
return sentEmailCount;
}
public void sendEmails(List<Email> emails) {}
}
Java
복사
•
EmailService는 sentEmailCount를 통해 자신이 호출된 횟수를 기억한다.
•
이처럼 자기 자신이 호출된 상황에 대한 처리가 발생하는 경우 Spy 객체라고 할 수 있다.
•
Mockito 테스트 프레임워크의 verify() 메서드가 유사한 역할을 수행한다.