当前位置: 首页 > 知识库问答 >
问题:

PowerMock

东门越
2023-03-14

我们在一些历史项目中使用PowerMock。不幸的是,PowerMock已经死了,并且与Java11不兼容。

我们正在使用mockStatic()。是的,我们知道它被认为是有害的——它存在于遗留代码中,我们不希望现在就重写这些类。。。

是否有任何选项如何调整PowerMock以支持Java11?或者是否可以轻松地将其替换为其他Java11兼容的框架?(Mockito不支持mockStatic)

共有3个答案

夹谷星剑
2023-03-14

添加属性:org/powermock/extensions/configuration。属性

https://github.com/powermock/powermock/wiki/PowerMock-Configuration https://github.com/powermock/powermock-examples-maven/blob/master/global-ignore/src/test/resources/org/powermock/extensions/configuration.properties

e、 g.对于maven/gradle:src/test/resources/org/powermock/extensions/configuration。属性

powermock.global-ignore=javax.crypto.*,com.sun.xml.internal.stream.*,javax.xml.stream.*,javax.net.ssl.*,org.slf4j.*,javax.xml.parsers.*,ch.qos.logback.*,jdk.xml.internal.*,com.sun.org.apache.xerces.*,java.xml.*,org.xml.*,javax.management.*,org.w3c.dom.*
周弘盛
2023-03-14

解决与:

@PowerMockIgnore("jdk.internal.reflect.*")

不需要别的了。

皇甫智明
2023-03-14

在一年没有发布之后,PowerMock中的事情真的在发生变化。

PowerMock 2.0.0-RC1发布。使用PowerMockito 2.0.0-RC1@PowerMockIgnore({“com.sun.org.apache.xerces.*,”javax.xml.*,“org.xml.*,”org.w3c.*)

这些测试在Java11下工作。

 类似资料:
  • 问题内容: 我有这样的代码片段: 在运行此测试时,我得到: 你知道我该怎么预防吗?我也许还有另一种方法可以模拟这样的代码: 问题答案: 尝试将此注释添加到您的Test类: 为我工作。

  • 问题内容: 我已经用Java开发了一个应用程序,并试图使用Powermockito创建单元测试(我应该补充说我是单元测试的新手)。 我有一个名为Resource的类,该类具有一个称为readResources的静态方法: ResourcesElement也由我编码。在测试中,我想创建自己的资源,因此我希望上述方法什么都不做。我尝试使用此代码: 单元测试引发异常: org.mockito.excep

  • 问题内容: 我正在尝试模拟私有静态方法。见下面的代码 这是我的测试代码 但是我运行的每个瓦片都会出现此异常 我想我在嘲弄东西时做错了什么。有什么想法我该如何解决? 问题答案: 为此,您可以使用和。 此外,您必须在测试类中指定PowerMock运行器,并准备要进行测试的类,如下所示: 希望对您有帮助。

  • 问题内容: 我有一个DummyResource类和一个DummyTarget文件,以及一个测试类TestDummyResource,如下所示,但是模拟对象仅在我在普通类中调用构造函数时才起作用,在匿名类中调用它时,它调用的是实际构造函数而不是使用模拟对象。 版本: powermock 1.4.12模拟1.9.0 junit 4.8.2 DummyTarget.java: DummyResource

  • 问题内容: 尝试使用PowerMock和Mockito执行单元测试时遇到问题。我需要PowerMockito模拟静态方法。 这些是我正在使用的版本: 当我添加注释@PrepareForTest(Graph.class)时,出现以下错误: 我在PowerMock Google官方页面上读到了这与javassist有关。但是我有点迷茫,我不知道该如何解决。 为了以防万一,我还尝试下载Powermock

  • 问题内容: 我想编写一个JUnit测试来验证以下代码是否使用BufferedInputStream: (FilterFactory是一个接口。) 到目前为止,我的测试如下: 调用PowerMockito.spy会引发以下消息异常: 我应该使用什么代替PowerMocktio.spy来设置对whenNew的调用? 问题答案: 信息很明显:您不能模拟不可见和最终类。简短答案: 创建一个 匿名 类 的

  • 问题内容: 当我测试此静态方法时 与 我知道了。我的问题是: 当所有参数都使用匹配器时,为什么会出现此异常?怎么解决呢?我已经调试了它,发现返回null。 当我将注释添加到测试类并运行测试时,junit不会响应。为什么? 编辑 我试图不使用参数匹配器,并得到 org.mockito.exceptions.misusing.MissingMethodInvocationException:when(

  • 问题内容: 我有以下要模拟的Logger,但要验证是否正在调用日志条目,而不是内容。 我想模拟用于LoggerFactory.getLogger()的任何类,但是我找不到如何做到这一点。到目前为止,这是我最终得到的结果: 我想知道: 我可以模拟静态模型以用于任何课程吗? 我只能似乎运行的,因此我似乎无法改变每个方法的特点。有没有解决的办法? 编辑结果: 我以为我已经尝试过了,但没有成功: 但是,谢