前言
PowerMock
是一個單元測試框架,可以模擬靜態(tài)方法,私有方法和final
方法等來簡化單元測試的編寫。本篇文章將對使用PowerMock
需要的依賴進行介紹。
正文
一. 注解添加與使用場景
在使用PowerMock
時需要針對不同場景添加對應(yīng)注解,主要是@RunWith
和@PrepareForTest
注解。注解添加和場景對應(yīng)如下所示。
場景 | 注解 |
---|---|
模擬final方法 |
@PrepareForTest ,@RunWith
|
模擬靜態(tài)方法 |
@PrepareForTest ,@RunWith
|
模擬私有方法 | @PrepareForTest |
使用whenNew |
@PrepareForTest ,@RunWith
|
@PrepareForTest
注解用于告訴PowerMock
需要準備某些類進行測試,這些類包括final
類,帶有final
,private
,static
或native
方法的類,上述類需要PowerMock
基于字節(jié)碼進行操作??梢园凑?code>@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
參數(shù)占位符,部分情況需要使用到org.mockito.BDDMockito
。引入powermock-api-mockito2
和powermock-module-junit4
是為了提供PowerMock
功能,其中powermock-module-junit4
中還引入了hamcrest-core
,主要是使用其提供的org.hamcrest.MatcherAssert.assertThat
和org.hamcrest.Matchers.is
進行斷言判斷。文章來源:http://www.zghlxwxcb.cn/news/detail-479393.html
在引入依賴時,需要注意核對Mockito
和PowerMock
的版本對應(yīng)關(guān)系,否則會報java.lang.ClassNotFoundException: org.mockito.exceptions.Reporter
錯誤。版本對應(yīng)關(guān)系可以去PowerMock
官網(wǎng)進行查詢:PowerMock官網(wǎng),通常情況下,如果引入的mockito-core
版本為2.x,則PowerMock
的api需要使用powermock-api-mockito2
。文章來源地址http://www.zghlxwxcb.cn/news/detail-479393.html
到了這里,關(guān)于PowerMock使用-依賴準備的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!