Power Mock 和 Mockito 版本不兼容

问题描述 投票:0回答:1

我正在使用 JDK 1.8 开发遗留代码库。 对于我的一个单元测试,我想使用 PowerMock,以便可以对 javax.xml.ws.spi 包中的静态方法 (Provider.provider()) 调用 PowerMock.mockStatic() 方法。 但是,当我将 powermock-api-mockito2 依赖项添加到我的 pom.xml 中时,在尝试执行单元测试时出现以下错误。

java.lang.NoSuchMethodError: org.mockito.Mockito.framework()Lorg/mockito/MockitoFramework;

到目前为止,这是单元测试中第一个需要 Power Mock 的实例,其余测试已经使用mockito-all 编写。这些是我的 pom.xml 的依赖项

是否有一个版本的mockito-all我可以升级来解决这个依赖性问题,或者是否有一个旧版本的powermock-api-mockito2我可以使用? 我将非常感谢对此的任何帮助或反馈。谢谢。

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>1.10.19</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.powermock/powermock-module-testng -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-testng</artifactId>
    <version>2.0.9</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.powermock/powermock-module-junit4 -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>2.0.9</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito2 -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-mockito2</artifactId>
    <version>2.0.9</version>
    <scope>test</scope>
</dependency>
java mockito powermock powermockito
1个回答
0
投票

作为更新。我通过将mockito-all 替换为mockito-inline 来实现这一点。这并没有影响我的任何旧测试。 mockito-inline 在版本 5 之后放弃了对 jdk 1.8 的支持。但是,版本 4 具有静态模拟方法,并且仍然支持 JDK 1.8。

© www.soinside.com 2019 - 2024. All rights reserved.