[java] Mockito를 사용한 상속된 메서드의 테스트

이번 블로그에서는 Mockito를 활용하여 Java에서 상속된 메서드를 테스트하는 방법에 대해 알아보겠습니다.

Mockito란 무엇인가?

Mockito는 Java에서 유닛 테스트를 위해 사용되는 인기 있는 mocking 프레임워크입니다. Mockito를 사용하면 테스트할 때 필요한 외부 의존성을 가짜 객체로 대체하여 강력한 유닛 테스트를 만들 수 있습니다.

상속된 메서드 테스트

상속된 메서드를 테스트하는 경우, 부모 클래스에 정의된 메서드를 테스트하는 것이 중요합니다. Mockito를 사용하여 상속된 메서드를 테스트하려면 Mockito의 @Spy 어노테이션을 사용하여 스파이 객체를 생성해야 합니다.

아래는 간단한 예제 코드입니다.

public class Parent {
    public String parentMethod() {
        return "Parent Method";
    }
}

public class Child extends Parent {
    public String childMethod() {
        return "Child Method";
    }
}

위의 Parent 클래스에 정의된 parentMethod를 테스트하기 위해 Mockito를 사용할 수 있습니다.

import org.junit.Test;
import org.mockito.Mockito;

public class ChildTest {

    @Test
    public void testParentMethod() {
        Parent parent = Mockito.spy(new Parent());
        Mockito.when(parent.parentMethod()).thenReturn("Mocked Parent Method");

        Child child = new Child();
        String result = child.parentMethod();

        assertEquals("Mocked Parent Method", result);
    }
}

위의 예제에서는 Parent 클래스의 parentMethod를 스파이 객체로 만들어 테스트하고 있습니다.

마무리

Mockito를 사용하여 상속된 메서드를 테스트하는 것은 상대적으로 간단하며, 테스트 대상이 직접적으로 호출되지 않을 때도 유용합니다. Mockito를 통해 외부 의존성을 제어하고, 부모 클래스에 정의된 메서드를 효과적으로 테스트할 수 있습니다.