1. maven配置依赖
<properties>
<powermock.version>2.0.2</powermock.version>
</properties>
<dependencies>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
2. 使用
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.mockito.Mockito.*;
@RunWith(PowerMockRunner.class)
@PrepareForTest({MyModelService.class})
public class MyModelServiceTest {
@InjectMocks
MyModelService myModelService;
@Before
public void setUp() { MockitoAnnotations.initMocks(this);}
@Test
public void should_get_uuid_successfully(){
//UUID
UUID uuid = UUID.fromString("5211E915-C3E2-4DCB-0776-C7B900F38AB7");
mockStatic(UUID.class);
when(UUID.randomUUID()).thenReturn(uuid);
MyModel model = myModelService.approve();
//private method
MyModelService spy = PowerMockito.spy(new MyModelService());
// use PowerMockito to set up your expectation
PowerMockito.doReturn(value).when(spy, "privateMethodToMock", "parameter1");
// also can use PowerMockito.when
//PowerMockito.when(spy, "privateMethodToMock", parameter1).thenReturn(value);
}
}