public class StaticClass {
public static String getGreeting() {
return "Hello";
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(StaticClass.class)
public class StaticClassTest {
@Test
public void testStaticMethodMocking() {
PowerMock.mockStatic(StaticClass.class);
EasyMock.expect(StaticClass.getGreeting()).andReturn("Mocked greeting");
PowerMock.replay(StaticClass.class);
String greeting = StaticClass.getGreeting();
assertEquals("Mocked greeting", greeting);
PowerMock.verify(StaticClass.class);
}
}
public class PrivateClass {
private String getGreeting() {
return "Hello";
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(PrivateClass.class)
public class PrivateClassTest {
@Test
public void testPrivateMethodMocking() throws Exception {
PrivateClass privateClass = PowerMock.createPartialMock(PrivateClass.class, "getGreeting");
PowerMock.expectPrivate(privateClass, "getGreeting").andReturn("Mocked greeting");
PowerMock.replay(privateClass);
String greeting = Whitebox.invokeMethod(privateClass, "getGreeting");
assertEquals("Mocked greeting", greeting);
PowerMock.verify(privateClass);
}
}
public class ConstructorClass {
private int value;
public ConstructorClass() {
this.value = 0;
}
public ConstructorClass(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(ConstructorClass.class)
public class ConstructorClassTest {
@Test
public void testConstructorMocking() throws Exception {
ConstructorClass mockedInstance = PowerMock.createMockAndExpectNew(ConstructorClass.class);
EasyMock.expect(mockedInstance.getValue()).andReturn(10);
PowerMock.replay(ConstructorClass.class, mockedInstance);
ConstructorClass instance = new ConstructorClass();
assertEquals(10, instance.getValue());
PowerMock.verify(ConstructorClass.class, mockedInstance);
}
}
public final class FinalClass {
public final String getGreeting() {
return "Hello";
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(FinalClass.class)
public class FinalClassTest {
@Test
public void testFinalMethodMocking() {
FinalClass mockedInstance = PowerMock.createMock(FinalClass.class);
EasyMock.expect(mockedInstance.getGreeting()).andReturn("Mocked greeting");
PowerMock.replay(mockedInstance);
String greeting = mockedInstance.getGreeting();
assertEquals("Mocked greeting", greeting);
PowerMock.verify(mockedInstance);
}
}
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>4.3.2</version>
<scope>test</scope>
</dependency>