运行时找不到某些方法的问题
Powermock 和 mockito 需要配对版本使用,不然会报错,版本配对连接:https://github.com/powermock/...
classloader 冲突问题
执行时 powermock 有可能出现以下报错:
出现了 Failed to load ApplicationContext
字样的报错时,是由于 classloader 冲突导致,需要把对应冲突的包添加到 @PowerMockIgnore 列表中
· 例如上图的 org/w3c
包出现冲突,我们即可增加到 @PowerMockIgnore 列表中:@PowerMockIgnore({"javax.xml.*","com.sun.org.apache.xerces.*","javax.net.ssl.*","javax.management.*","org.xml.*","org.w3c.*"})
参考:
https://stackoverflow.com/que...
继承出现验证器冲突问题:
· powermock 使用继承的时候可能会报出这样的一个错误:java.lang.VerifyError: Inconsistent stackmap frames at branch target 38
原因是因为 PowerMock中为支持对构造函数的测试,借助于Javassist实现对字节码的操作。但是从Java 6开始引入的Stack Map Frames特性与Javassist不兼容。在Java 6中该Stack Map Frames还是可选的。但是到了Java 7,该Stackmap Frames已经是默认使用的,所以不兼容问题导致了该异常。
在java8中问题可以使用增加启动参数 -Xverify:none 来解决。
参考:https://stackoverflow.com/que...
PS:升级了 javassist 版本为 3.25.0-GA 后,不用加启动参数也能正常执行啦!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。