[java] Mockito의 프록시 관련 기능
Mockito는 자바에서 단위 테스트를 위해 사용되는 인기 있는 mocking 프레임워크 중 하나이다. Mockito의 spy()
및 @Spy
를 포함한 프록시 관련 기능은 테스트 대상 코드와 상호작용하는 동안 프록시 객체를 생성하고 조작할 수 있는 유용한 기능을 제공한다.
Mockito의 spy()
메소드
spy()
메소드는 일반 객체를 모킹하거나 실제로 호출할 수 없는 객체의 일부 메소드를 모킹하기 위해 사용된다.
List<String> list = new LinkedList<>();
List<String> spyList = spy(list);
// 특정 메소드 호출을 실제 코드를 실행하거나, 목 객체로 설정
when(spyList.size()).thenReturn(10);
@Spy
어노테이션 사용법
@Spy
어노테이션을 이용하여 테스트 대상 객체의 프록시를 생성하고, 기본 생성자를 통해 객체를 초기화한다.
public class SomeClass {
List<String> list = new LinkedList<>();
}
// 테스트 클래스
public class SomeClassTest {
@Spy
SomeClass someClass;
// 테스트 메소드
public void testMethod() {
// 특정 메소드 호출을 실제 코드를 실행하거나, 목 객체로 설정
when(someClass.getListSize()).thenReturn(10);
}
}
위의 예시에서 @Spy
어노테이션을 사용하여 SomeClass
의 list
필드를 가진 객체에 대한 프록시를 생성하고 특정 메소드를 모킹할 수 있다.
spy()
메소드와 @Spy
어노테이션을 이용하여 Mockito는 실제 객체를 모킹하면서도 일부 메소드를 실제로 실행하게 할 수 있어 효과적인 단위 테스트가 가능하다.
더 자세한 내용은 Mockito 공식 문서를 참고하시기 바랍니다.