java - 分支处的堆栈图帧不一致 - Java8 Maven 单元测试

标签 java maven unit-testing javassist powermockito

首先我想说,我读了很多关于这个问题的文章,但没有找到任何解决方案。

我有一些单元测试类,我在其中对另一个类使用模拟静态方法。然后,当我运行测试时,它会抛出“分支处的堆栈映射帧不一致...”错误。

我尝试了所有我已知的方法,例如-XX:-UseSplitVerifier 或 -noverify 参数添加到 Maven Surefire 插件,但它们都不能正常工作。我一直处于相同的状态。

我尝试更改 PowerMock 的版本 - 较旧的和最新的 - 没有任何改变。

我使用库: PowerMockito 1.62(使用Javassist 3.19.0-GA版本) java 1.8 Maven 3.2.5

请告诉我,在 Java8+ 中是否有任何可行的解决方案来避免此问题?

感谢您的帮助!

最佳答案

字节代码操作工具需要更新它们更改的代码的堆栈映射帧。否则,当您的情况发生时,会抛出 VerifierError 。 Java 8 不再支持通过要求旧 validator (-XX:-UseSplitVerifier) 来禁用堆栈映射帧的验证。

我假设您发现了 Javassist 中的一个错误,该错误能够识别堆栈映射帧并可能错误地发出它们。尝试更新到the latest version图书馆的。如果这不起作用,请创建错误的再现并提交错误。

关于java - 分支处的堆栈图帧不一致 - Java8 Maven 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38314145/

相关文章:

java - 创建 html 文件并动态添加行

java - 按对象的属性对 map 进行排序

java - Eclipse 插件从当前打开的文件中获取代码

java - Maven 次要版本 `x`

java - 使用 BufferedReader (Java) 翻译字符串中的单词

java - 无法在项目 XX 上执行目标 无法解决项目的依赖关系。返回代码为 : 501 , ReasonPhrase:HTTPS 必需

java - 在多模块 Maven 项目中运行 exec-maven-plugin 时出现问题

unit-testing - 在 VS2010 中使用 MStest 对 .NET 3.5 项目进行单元测试

java - java 枚举的所有实例的模拟方法

scala - 如何模拟 Akka Actor 来对类(class)进行单元测试?