java - PowerMock 和 Java 8 问题 : InterfaceMethodrefInfo cannot be cast to MethodrefInfo

标签 java powermock javassist

我在尝试使用 PowerMock 和 Mockito 执行单元测试时遇到问题。我需要 PowerMockito 来模拟静态方法。

这些是我使用的版本:

PowerMock 1.6.2
Mockito 1.10.19
JUnit 4.12
Java 8

当我添加注解@PrepareForTest(Graph.class) 时,出现以下错误:

java.lang.IllegalStateException: Failed to transform class with name     name.of.my.package.GraphUtil. Reason: javassist.bytecode.InterfaceMethodrefInfo cannot be cast to javassist.bytecode.MethodrefInfo

我在官方的PowerMock Google页面上看到这与javassist有关。但是我有点迷路,我不知道如何解决。

为了以防万一,我也尝试下载最新的 Powermock SNAPSHOT (1.6.3-SNAPSHOT),但也没有用。

谁能帮帮我,好吗?

提前致谢

最佳答案

正在关注 Francisco González's回答,这是我必须做的:

<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>1.5.5</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
        </exclusion>
    </exclusions>      
</dependency>
<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.20.0-GA</version>
    <scope>test</scope>
</dependency>

关于java - PowerMock 和 Java 8 问题 : InterfaceMethodrefInfo cannot be cast to MethodrefInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31189086/

相关文章:

java - 在 Java 中检查空字符串

java - Mockito + PowerMock - 模拟 Thread.currentThread().getStackTrace()

java - 在Android上与USB设备通信

java - ServletRegistration.Dynamic?接口(interface)名称中怎么会有点?

java - 简单的PowerMock测试报错,android studio项目

junit - 尽管给出不同的答案来调用实际方法以返回静态方法执行

java - iland.hbm.Atom_$$_javassist_21 无法转换为 javassist.util.proxy.Proxy 异常

java - 为什么 Javassist ProxyFactory 的 create 方法没有根据 args 参数调用正确的构造函数?

javassist 字段检查初始化

java - 将 double 值转换为字符串后如何从中删除小数点