Search
Duplicate
🏑

Spy

태그
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
복사
EmailServicesentEmailCount를 통해 자신이 호출된 횟수를 기억한다.
이처럼 자기 자신이 호출된 상황에 대한 처리가 발생하는 경우 Spy 객체라고 할 수 있다.
Mockito 테스트 프레임워크의 verify() 메서드가 유사한 역할을 수행한다.