0


PowerMock使用-依赖准备

前言

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

进行断言判断。

在引入依赖时,需要注意核对

Mockito

PowerMock

的版本对应关系,否则会报

java.lang.ClassNotFoundException: org.mockito.exceptions.Reporter

错误。版本对应关系可以去

PowerMock

官网进行查询:PowerMock官网,通常情况下,如果引入的

mockito-core

版本为2.x,则

PowerMock

api需要使用

powermock-api-mockito2


本文转载自: https://blog.csdn.net/Sakura_Sacrifice/article/details/128773055
版权归原作者 樱花祭的约定 所有, 如有侵权,请联系我们删除。

“PowerMock使用-依赖准备”的评论:

还没有评论