如何编写受JDK bug影响的Java单元测试
我最近发现,我的一个单元测试由于JDK中的一个错误而失败,即JDK-8080774
编写条件单元测试的最佳方式是什么?它以一种方式检查存在错误修复的JDK版本的输出,而在没有错误修复的情况下以另一种方式检查输出
在JDK bug 8080774的情况下,它在JDK 6或更高版本中根本没有被修复,在JDK 7u91或更高版本以及JDK 8u60或更高版本中都被修复
我已经考虑过解析System.getProperty("java.version")
的输出,但如果可能的话,我正在寻找更好/更优雅的解决方案
例如Apache Commons有SystemUtils.isJavaVersionAtLeast()
方法,但它没有足够的粒度
# 1 楼答案
编辑-在问题之前发布,清楚地提到了这一点
正如Brian指出的,您需要尽可能多地获得最新的JDK稳定版本
但是,您可以通过在运行时获取
java.version
属性来获取VM版本有关更多信息,请参阅此post