PowerMock和Java 11

mal*_*ouk 9 java junit powermock powermockito

我们在少数历史项目中使用了PowerMock。不幸的是,PowerMock已经死了,并且与Java 11不兼容。

而且我们正在使用mockStatic()。是的,我们知道它被认为是有害的-它在旧代码中,并且我们不希望现在不重写那些类。

有什么选项可以调整PowerMock以支持Java 11?还是可以轻松地用其他兼容Java 11的框架替换它?(Mockito不支持mockStatic)

mal*_*ouk 10

一年没有发布之后,PowerMock的情况确实发生了变化。

PowerMock 2.0.0-RC1已发布。并使用PowerMockito 2.0.0-RC1 +@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})

这些测试在Java 11下运行。

  • 这种解决方法似乎只取得了有限的成功。在很多情况下它不起作用。<br> 请参阅:https://github.com/powermock/powermock/issues/1061 <br> 这个有时也可以工作:<br> @PowerMockIgnore({"javax.net.ssl.*", "org. slf4j.*”、“javax.parsers.*”、“ch.qos.logback.*”、“jdk.xml.internal.*”、“com.sun.org.apache.xerces.*”、“javax.slf4j.*”、“javax.parsers.*”、“ch.qos.logback.*”、“jdk.xml.internal.*” xml.*"、"org.xml.*"、"javax.management.*"}) (2认同)

Bru*_*ola 8

解决了:

@PowerMockIgnore("jdk.internal.reflect.*")
Run Code Online (Sandbox Code Playgroud)

其他什么都不需要。