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");
// 테스트 코드 작성
}
}
위의 예시 코드에서 MyClass
의 myStaticMethod()
와 MyObject
의 privateMethod()
를 mocking하고 stubbing하였습니다.
이제 Java PowerMock을 설치하고 사용하는 방법에 대해 알게 되었습니다. 추가적인 기능 및 사용 방법에 대해서는 PowerMock 공식 문서를 참고하시기 바랍니다.