和Mockito一起使用PowerMock
(源码加我QQ3177181324)
介绍
事实上,PowerMock提供了一个名为“PowerMockito”的类,用于创建mock对象/类并开始验证和期望(一个行为/调用或者返回值),您仍然可以使用Mockito设置和验证期望的所有其他内容(例如times(),anyInt())。
所有的用法需要@RunWith(PowerMockRunner.class)
,并在类上标识@PrepareForTest
注解。
支持版本
PowerMock 2.0.0及更高版本具有Mockito 2的支持。
PowerMock 1.7.0及更高版本具有Mockito 2的实验性支持。
许多问题仍未解决。PowerMock使用Mockito 内部API,但至少可以同时使用两个模拟框架。
Mockito | PowerMock |
---|---|
2.8.9+ | 2.x |
2.8.0-2.8.9 | 1.7.x |
2.7.5 | 1.7.0RC4 |
2.4.0 | 1.7.0RC2 |
2.0.0-beta - 2.0.42-beta | 1.6.5-1.7.0RC |
1.10.8 - 1.10.x | 1.6.2 - 2.0 |
1.9.5-rc1 - 1.9.5 | 1.5.0 - 1.5.6 |
1.9.0-rc1 & 1.9.0 | 1.4.10 - 1.4.12 |
1.8.5 | 1.3.9 - 1.4.9 |
1.8.4 | 1.3.7 & 1.3.8 |
1.8.3 | 1.3.6 |
1.8.1 & 1.8.2 | 1.3.5 |
1.8 | 1.3 |
1.7 | 1.2.5 |
Maven配置
JUnit
- Mockito JUnit Maven配置
- Mockito2 JUnit Maven配置
TestNG
- Mockito TestNG Maven配置
- Mockito2 TestNG Maven配置
用法
在下面的示例中,为了更好地了解方法的位置,我们在Mockito或PowerMockito API中未对方法使用静态导入。但是,我们强烈建议您在实际的测试用例中静态导入方法,以提高可读性。
注意:Mockito团队在Mockito 2.1.0中增加了模拟final类/方法的能力。自PowerMock 1.7.0(经过Mockito 2.8.9测试)以来,PowerMock支持此功能。可以使用PowerMock Configuration启用该功能。如果使用Mockito 2,建议使用Mockito模拟final方法/类。
Mock静态方法
如何模拟(mock)和存根(stub):
- 在类