[java] Mockito를 사용하여 추상 클래스를 테스트하는 방법은?
추상 클래스는 인스턴스화할 수 없기 때문에 전통적인 방식으로는 테스트하기 어려울 수 있습니다. 그러나 Mockito를 사용하면 추상 클래스의 메서드를 테스트할 수 있습니다. Mockito를 사용하여 추상 클래스를 테스트하는 방법을 살펴보겠습니다.
먼저, Mockito 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음 의존성을 추가하세요:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.8.0</version>
<scope>test</scope>
</dependency>
Gradle을 사용한다면 build.gradle 파일에 다음 의존성을 추가하세요:
testImplementation 'org.mockito:mockito-core:3.8.0'
이제 Mockito를 사용하여 추상 클래스를 테스트할 준비가 되었습니다. 다음은 추상 클래스를 테스트하는 간단한 예제입니다:
public abstract class AbstractClass {
public abstract String abstractMethod();
public String concreteMethod() {
return "Hello, World!";
}
}
import org.junit.Test;
import static org.mockito.Mockito.*;
public class AbstractClassTest {
@Test
public void testConcreteMethod() {
AbstractClass abstractClass = mock(AbstractClass.class);
when(abstractClass.concreteMethod()).thenReturn("Mocked!");
String result = abstractClass.concreteMethod();
assertEquals("Mocked!", result);
}
}
위의 코드 예제에서는 Mockito를 사용하여 AbstractClass
의 concreteMethod
를 테스트합니다. AbstractClass
를 모킹(mocking)하고, concreteMethod
의 반환값을 모킹된 값으로 변경합니다. 그리고 모킹된 값과 실제 호출 결과를 검증하여 테스트를 수행합니다.
이와 같은 방식으로 Mockito를 사용하여 추상 클래스를 테스트할 수 있습니다. Mockito는 다양한 메서드 모킹 및 검증 기능을 제공하므로, 더 복잡한 시나리오에도 유용하게 사용할 수 있습니다.
더 많은 사용 예제와 Mockito의 기능에 대한 자세한 정보는 Mockito 공식 문서를 참조하세요: https://site.mockito.org