[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 공식 문서를 참고하시기 바랍니다.