[java] Mockito를 사용하여 인스턴스 메소드를 모킹하는 방법은?
Mockito는 Java에서 테스트하기 어려운 의존성을 가진 클래스나 메소드를 테스트하기 위해 자주 사용되는 라이브러리입니다. Mockito를 사용하여 인스턴스 메소드를 모킹하는 방법을 살펴보겠습니다.
import static org.mockito.Mockito.*;
// 모킹 대상 클래스
public class MyClass {
public String myMethod() {
// 복잡한 로직이 포함된 메소드
return "Hello World";
}
}
// 테스트 클래스
public class MyTest {
@Test
public void testMyMethod() {
// 모킹 대상 객체 생성
MyClass myClass = mock(MyClass.class);
// 모킹 메소드 지정
when(myClass.myMethod()).thenReturn("Mocked Method");
// 모킹 메소드 호출
String result = myClass.myMethod();
// 결과 검증
assertEquals("Mocked Method", result);
}
}
위의 예제 코드에서 MyClass
는 테스트 대상 클래스이며 myMethod
는 모킹하고자 하는 인스턴스 메소드입니다. MyTest
는 실제 테스트를 수행하는 테스트 클래스입니다.
mock(MyClass.class)
를 통해 MyClass
의 인스턴스를 모킹하고, when(myClass.myMethod()).thenReturn("Mocked Method")
를 사용하여 myMethod
가 호출될 때 “Mocked Method”를 반환하도록 지정합니다. 그리고 myClass.myMethod()
를 호출하면 모킹된 메소드가 실행되어 “Mocked Method”가 반환됩니다.
이후에는 assertEquals("Mocked Method", result)
를 사용하여 모킹된 메소드의 반환값을 검증할 수 있습니다.
Mockito를 사용하여 인스턴스 메소드를 모킹하는 방법을 알아보았습니다. 이를 통해 의존성이 있는 클래스나 메소드를 테스트하는 데 도움을 받을 수 있습니다.
더 많은 Mockito 사용법이나 다른 기능들에 대해서는 Mockito 공식 문서를 참고하시기 바랍니다.
- Mockito 공식 문서: https://site.mockito.org/