PowerMock+Junit4 Maven配置

       在单元测试中,我们往往想去独立地去测一个类中的某个方法,但是这个类可不是独立的,它会去调用一些其它类的方法和service,于是JMockit、PowerMock 和 Mockito就诞生了。最近在学习PowerMock时发现网上对于他的Maven配置说明不是很详细,导致在使用时会报错,显示ClassNotFoundException和NoClassDefFoundError等错误。多番查找后,在stackoverflow找到了答案,junit+PowerMock相关配置如下:

<!--变量信息 -->

<properties>
    <java.version>1.8</java.version>
    <powermock-version>2.0.2</powermock-version>
<mockito-version>2.23.4</mockito-version> </properties> <!--引用信息 --> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId>
<mockito-version>${mockito-version}</mockito-version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito2</artifactId>
        <version>${powermock-version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>${powermock-version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-core</artifactId>
        <version>${powermock-version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4-rule</artifactId>
        <version>${powermock-version}</version>
        <scope>test</scope>
    </dependency> 

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>

 

       在springboot2.1.3环境中运行正常,可以根据具体情况更改配置,但要注意版本过低的PowerMock可能需要依赖外部库

       4.15更新 新增了mockito配置,现在可以在非springboot环境下运行


 

参考地址:https://stackoverflow.com/questions/11223640/mockito-easymock-noclassdeffounderrornet-sf-cglib-proxy-enhancer

 

 

2023,01,29更新

现在的环境直接修改私有方法的mock方式已经没落了,相关的框架比如power mock和jmockit 已经很久不更新,取而代之的是Mockito对于public的实例方法和静态方法的mock,老的项目还是不要升级版本了,否则junit的配套mock工具失效了覆盖率上不去

 

posted @ 2019-03-26 14:52  大哥超帅  阅读(5262)  评论(1编辑  收藏  举报