首先,我想提一下我读了很多关于这个问题的内容,但我找不到任何解决方案。
我有一些单元测试类,我在另一个类中使用mockstatic方法。然后,当我运行测试时,它会抛出“分支上的不一致堆栈图帧...”错误。
我尝试过所有人都知道的方式,例如-XX:-UseSplitVerifier或-noverify params添加到maven surefire插件,但它们都没有正常工作。我一直都是同一个州。
我试图更改PowerMock的版本 - 更旧和最新 - 没有任何改变。
我使用库: PowerMockito 1.62(使用Javassist 3.19.0-GA版本) Java 1.8 Maven 3.2.5
请让我知道,有没有任何可行的解决方案如何在Java8 +中避免这个问题?
感谢您的帮助!
答案 0 :(得分:1)
字节代码操作工具需要更新它们更改的代码的堆栈映射帧。否则,在您的情况下会发生VerifierError
。 Java 8中不再支持通过要求旧验证程序(-XX:-UseSplitVerifier
)来禁用堆栈映射帧的验证。
我假设您发现了Javassist中的一个错误,它知道堆栈映射帧并且可能错误地将它们发送出去。尝试更新到库的the latest version。如果这不起作用,请创建错误的再现并提交错误。