前言
PowerMock
是一个单元测试框架,可以模拟静态方法,私有方法和final
方法等来简化单元测试的编写。本篇文章将对使用PowerMock
需要的依赖进行介绍。
正文
一. 注解添加与使用场景
在使用PowerMock
时需要针对不同场景添加对应注解,主要是@RunWith
和@PrepareForTest
注解。注解添加和场景对应如下所示。
场景 | 注解 |
---|---|
模拟final方法 |
@PrepareForTest ,@RunWith
|
模拟静态方法 |
@PrepareForTest ,@RunWith
|
模拟私有方法 | @PrepareForTest |
使用whenNew |
@PrepareForTest ,@RunWith
|
@PrepareForTest
注解用于告诉PowerMock
需要准备某些类进行测试,这些类包括final
类,带有final
,private
,static
或native
方法的类,上述类需要PowerMock
基于字节码进行操作。可以按照@PrepareForTest(TestObj.class)
的方式来告诉PowerMock
准备TestObj
类进行测试。
@RunWith
注解用于告诉JUnit
使用哪个运行类来运行@RunWith
注解修饰的类中的测试程序,例如@RunWith(PowerMockRunner.class)
,则告诉JUnit
使用PowerMockRunner
来运行@RunWith
注解修饰的类中的测试程序。
二. 使用PowerMock需要添加的依赖
需要引入的依赖如下所示。
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.23.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>
引入mockito-core
是为了提供Mockito
功能,主要使用到org.mockito.ArgumentMatchers
参数占位符,部分情况需要使用到org.mockito.BDDMockito
。引入powermock-api-mockito2
和powermock-module-junit4
是为了提供PowerMock
功能,其中powermock-module-junit4
中还引入了hamcrest-core
,主要是使用其提供的org.hamcrest.MatcherAssert.assertThat
和org.hamcrest.Matchers.is
进行断言判断。文章来源:https://www.toymoban.com/news/detail-479393.html
在引入依赖时,需要注意核对Mockito
和PowerMock
的版本对应关系,否则会报java.lang.ClassNotFoundException: org.mockito.exceptions.Reporter
错误。版本对应关系可以去PowerMock
官网进行查询:PowerMock官网,通常情况下,如果引入的mockito-core
版本为2.x,则PowerMock
的api需要使用powermock-api-mockito2
。文章来源地址https://www.toymoban.com/news/detail-479393.html
到了这里,关于PowerMock使用-依赖准备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!