【问题标题】:PowerMockito gives NoClassDefFoundErrorPowerMockito 给出 NoClassDefFoundError
【发布时间】:2018-08-14 06:23:41
【问题描述】:

我正在尝试使用 Mockito 和 PowerMockito 设置单元测试,但它会抛出:

线程“主”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'

有人知道怎么解决吗?

【问题讨论】:

    标签: java android unit-testing mockito powermockito


    【解决方案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.6junit 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

    3. 切换到 powermock 1.6.2 并将 mockito 升级到 1.10.8:: 结果 java.lang.NoClassDefFoundError: org/mockito/internal/creation/util/MockitoMethodProxy 切换到mockito-core 1.10.19org.powermock 1.6.4

    【讨论】:

      【解决方案2】:

      您似乎在尝试使用不兼容的版本。

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

      【讨论】:

      • 使用 testCompile 'org.powermock:powermock-api-mockito2:1.7.3' 修复
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 2012-04-17
      • 2021-10-27
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      相关资源
      最近更新 更多