首页 > 解决方案 > 带有 Mockito 的 Powermock - 依赖问题

问题描述

我正在使用以下依赖项:

这是我的pom:

<dependency>
  <groupId>org.powermock</groupId>
  <artifactId>powermock-module-junit4</artifactId>
  <version>${powermock.version}</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.powermock</groupId>
  <artifactId>powermock-api-mockito2</artifactId>
  <version>${powermock.version}</version>
  <scope>test</scope>
</dependency>

具有以下属性:

<properties>
  <powermock.version>2.0.2</powermock.version>
</properties>

现在,当我运行一些单元测试时,我得到:

Caused by: java.lang.NoSuchMethodError: org.mockito.MockitoFramework.getPlugins()Lorg/mockito/plugins/MockitoPlugins;
    at org.powermock.api.mockito.mockmaker.MockMakerLoader.doLoad(MockMakerLoader.java:45)
    at org.powermock.api.mockito.mockmaker.MockMakerLoader.load(MockMakerLoader.java:36)
    at org.powermock.api.mockito.mockmaker.PowerMockMaker.<init>(PowerMockMaker.java:36)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)

我对此有点迷失 - 仍然遇到相同的情况:更改依赖项之一的版本并且缺少一些东西:/

我正在使用此站点来选择依赖项版本:https ://github.com/powermock/powermock/wiki/Mockito-2-Maven 有人可以帮助我并告诉我选择适当版本的工件的程序是什么吗?

感谢帮助 :)

标签: junitmockitopowermock

解决方案


添加任何依赖项时,请检查将添加的已编译依赖项

例如 - 如果您要添加 powermock-api-mockito 版本 - 1.7.4

https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito2/2.0.2

始终选择一个稳定的版本和最常用的版本,你做对了,去上面的 url 看看如下图

在此处输入图像描述

在页面上向下滚动-您将看到它正在自动添加-在依赖项下方

在此处输入图像描述

现在我认为你很容易找到依赖关系。

注意 - 这里显示了不同版本的

模拟核心:2.8.47 --> 2.23.0


推荐阅读