[java] Java PowerMock 설치 방법

Java PowerMock은 Java 언어로 작성된 테스트 코드에서 mocking과 stubbing을 편리하게 사용할 수 있는 도구입니다. 이 글에서는 Java PowerMock을 설치하는 방법을 안내하겠습니다.

1. 의존성 추가

Maven이나 Gradle을 사용하는 경우, 해당 프로젝트의 pom.xml 또는 build.gradle 파일에 다음 의존성을 추가해야 합니다.

<!-- Maven -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-mockito2</artifactId>
    <version>2.0.9</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>2.0.9</version>
    <scope>test</scope>
</dependency>
// Gradle
testImplementation 'org.powermock:powermock-api-mockito2:2.0.9'
testImplementation 'org.powermock:powermock-module-junit4:2.0.9'

위의 의존성은 Mockito와 함께 PowerMock을 사용할 경우입니다. 다른 mocking 프레임워크를 사용하는 경우 해당 의존성을 추가해야 합니다.

2. 테스트 설정 변경

PowerMock을 사용하기 위해 테스트 설정을 변경해야 합니다. 일반적으로 JUnit을 사용하는 경우, @RunWith 어노테이션을 추가하고 PowerMockRunner.class를 지정합니다. 예를 들어:

@RunWith(PowerMockRunner.class)
public class MyTest {
    // ...
}

또는 JUnit 5를 사용하는 경우, @ExtendWith 어노테이션을 추가하고 PowerMockExtension.class를 지정합니다. 예를 들어:

@ExtendWith(PowerMockExtension.class)
public class MyTest {
    // ...
}

3. PowerMock 사용하기

PowerMock을 설치하고 설정한 후에는 mocking과 stubbing을 사용할 수 있습니다. PowerMock을 사용하여 특정 클래스의 static 메소드를 mocking하거나 private 메소드를 호출할 수 있습니다. 이외에도 다양한 기능이 제공됩니다.

import static org.powermock.api.mockito.PowerMockito.*;

public class MyTest {
    @Test
    public void testMockingStaticMethod() {
        mockStatic(MyClass.class);
        when(MyClass.myStaticMethod()).thenReturn("Mocked result");

        // 테스트 코드 작성
    }

    @Test
    public void testCallingPrivateMethod() throws Exception {
        MyObject myObject = PowerMockito.spy(new MyObject());
        when(myObject, "privateMethod").thenReturn("Mocked result");

        // 테스트 코드 작성
    }
}

위의 예시 코드에서 MyClassmyStaticMethod()MyObjectprivateMethod()를 mocking하고 stubbing하였습니다.

이제 Java PowerMock을 설치하고 사용하는 방법에 대해 알게 되었습니다. 추가적인 기능 및 사용 방법에 대해서는 PowerMock 공식 문서를 참고하시기 바랍니다.