PowerMockito导致NoClassDefFoundError错误

3

我正在尝试使用Mockito和PowerMockito进行单元测试,但是它抛出以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/mockito/exceptions/Reporter

每次我尝试运行测试时都会出现这个错误。这是我的依赖项:

testCompile 'org.mockito:mockito-core:2.8.9'
testCompile 'org.powermock:powermock-api-mockito2:1.6.5'
testCompile 'org.powermock:powermock-module-junit4:1.7.4'

有人知道怎么修复它吗?

2个回答

8

看起来你正在尝试使用不兼容的版本。

根据这个表格,你需要使用 1.7.x 版本的 Powermock 才能与你的 Mockito 版本 2.8.9 兼容。


使用testCompile 'org.powermock:powermock-api-mockito2:1.7.3'进行修复。 - aloj

1

将以下依赖项添加到您的external-dependencies.xml中-

<dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-support</artifactId>
        <version>1.5.6</version>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-reflect</artifactId>
        <version>1.5.6</version>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>1.5.6</version>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>1.5.6</version>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4-common</artifactId>
        <version>1.5.6</version>
    </dependency>

解释-

  1. powermock 1.5.6存在问题与junit 4.12兼容 - 需要powermock 1.6.1 :: org.powermock.reflect.exceptions.FieldNotFoundException: 在类中找不到字段“fTestClass”

  2. org.junit.internal.runners.MethodValidator powermock 1.6.1需要更新的mockito :: 在接口org.mockito.internal.util.MockitoSpy的类层次结构中没有找到名称为add的方法

  3. 切换到powermock 1.6.2,升级到1.10.8的mockito :: 结果是java.lang.NoClassDefFoundErrororg/mockito/internal/creation/util/MockitoMethodProxy 切换到mockito-core 1.10.19org.powermock 1.6.4


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接