首页 > 技术文章 > PowerMock+Junit4 Maven配置

funkboy 2019-03-26 14:52 原文

       在单元测试中,我们往往想去独立地去测一个类中的某个方法,但是这个类可不是独立的,它会去调用一些其它类的方法和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

 

推荐阅读