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>


上一篇:
下一篇:
切换中文