import static org.mockito.Mockito.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest({UtilityClass.class})
public class UtilityClassTest {
@Test
public void testStaticMethod() throws Exception {
PowerMockito.mockStatic(UtilityClass.class);
when(UtilityClass.staticMethod()).thenReturn("mocked");
assertEquals("mocked", UtilityClass.staticMethod());
}
@Test
public void testPrivateMethod() throws Exception {
UtilityClass mock = PowerMockito.spy(new UtilityClass());
PowerMockito.when(mock, method(UtilityClass.class, "privateMethod")).thenReturn("mocked");
assertEquals("mocked", mock.invokePrivateMethod());
}
@Test
public void testConstructor() throws Exception {
UtilityClass mock = PowerMockito.mock(UtilityClass.class);
whenNew(UtilityClass.class).withNoArguments().thenReturn(mock);
UtilityClass instance = new UtilityClass();
assertNotNull(instance);
verifyNew(UtilityClass.class).withNoArguments();
}
}