使用PowerMock进行单元测试
环境: jdk 1.8 junit 4
maven
引入pom
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.7.7</version>
<scope>test</scope>
</dependency>
处理静态方法的单元测试:
类注解
@PrepareForTest(**静态类**.class)
@RunWith(PowerMockRunner.class)
多个以,分隔
有返回的静态方法:
PowerMockito.mockStatic(**静态类**.class);
PowerMockito.when(T method).thenReturn(object);
void 静态方法
PowerMockito.mockStatic(xxx.class);
//类名,方法名,参数
PowerMockito.doNothing().when(xxx.class, "方法名", anyString());
处理私有方法
spy被测类:
TestPowerMock powerMock= PowerMockito.spy(new TestPowerMock());
构造返回:
PowerMockito.when(powerMock, "methodName", param1, param2).thenReturn(2);