Fra*_*lez 18 java powermock javassist
我在尝试使用PowerMock和Mockito执行单元测试时遇到了问题.我需要PowerMockito来模拟静态方法.
这些是我使用的版本:
PowerMock 1.6.2
Mockito 1.10.19
JUnit 4.12
Java 8
Run Code Online (Sandbox Code Playgroud)
当我添加注释@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
Run Code Online (Sandbox Code Playgroud)
我在官方的PowerMock Google页面中读到这与javassist有关.但我有点失落,我不知道如何解决它.
为了以防万一,我也尝试下载最新的Powermock SNAPSHOT(1.6.3-SNAPSHOT),但也没有用.
有人可以帮帮我吗?
提前致谢
Pra*_*ant 21
按照FranciscoGonzález的回答,这就是我必须做的事情:
<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>
Run Code Online (Sandbox Code Playgroud)
是的,这就是问题所在。PowerMock 依赖于 javassist,因此我只需在我的 pom 中排除该传递依赖项,然后包含对 javassist 固定版本的依赖项。这对我有用。谢谢!
小智 5
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.22.0-GA</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<exclusions>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12989 次 |
| 最近记录: |