import static org.powermock.api.mockito.PowerMockito.*; import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.reflect.Whitebox; @RunWith(PowerMockRunner.class) @PrepareForTest({StaticClass.class, FinalClass.class}) public class MyClassTest { @Test public void testStaticMethod() throws Exception { mockStatic(StaticClass.class); when(StaticClass.staticMethod()).thenReturn("Mocked"); MyClass myClass = new MyClass(); String result = myClass.callStaticMethod(); assertEquals("Mocked", result); verifyStatic(StaticClass.class); StaticClass.staticMethod(); } @Test public void testPrivateMethod() throws Exception { MyClass myClass = spy(new MyClass()); doReturn("Mocked").when(myClass, "privateMethod"); String result = myClass.callPrivateMethod(); assertEquals("Mocked", result); verifyPrivate(myClass).invoke("privateMethod"); } @Test public void testFinalClass() throws Exception { FinalClass finalClassMock = mock(FinalClass.class); whenNew(FinalClass.class).withNoArguments().thenReturn(finalClassMock); when(finalClassMock.finalMethod()).thenReturn("Mocked"); MyClass myClass = new MyClass(); String result = myClass.callFinalMethod(); assertEquals("Mocked", result); verifyNew(FinalClass.class).withNoArguments(); verify(finalClassMock).finalMethod(); } }


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