为什么org.powermock:powermock-api-mockito:1.7.4依赖于两个版本的mockito-



我在运行 Junit 测试期间收到以下错误。

java.lang.NoClassDefFoundError: org/mockito/cglib/proxy/MethodInterceptor
at org.powermock.api.mockito.PowerMockito.mock(PowerMockito.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

我在搜索时发现的原因是可能使用了多个版本的 mockito,这似乎是真的。

gradle :commons:dependencies | grep mock

返回以下

--- org.powermock:powermock-api-mockito:1.7.4
+--- org.powermock:powermock-api-mockito-common:1.7.4
|    +--- org.powermock:powermock-api-support:1.7.4
|    |    +--- org.powermock:powermock-reflect:1.7.4
|    |    --- org.powermock:powermock-core:1.7.4
|    |         +--- org.powermock:powermock-reflect:1.7.4 (*)
|    |         --- org.mockito:mockito-core:2.8.9 (*)
|    --- org.mockito:mockito-core:2.8.9 (*)
--- org.mockito:mockito-core:1.10.19 -> 2.8.9 (*)

为什么 powermock 1.7.4 递归依赖于 mockito 1.10.19 和 2.8.9?

org.powermock:powermock-api-mockito:1.7.4是针对 mockito 版本1.10.19编译的 (1(

org.powermock:powermock-api-mockito-common:1.7.4针对1.10.192.8.9进行编译,并提供mockito-core依赖项 (2(

org.powermock:powermock-core:1.7.4是针对2.8.9编译的 (三(

有一个从模拟核心版本1.10.19到最新版本(当前3.2.4(的更新路径。

Gradle发现存在冲突,所需的最低版本是2.8.9。 这就是您在输出中看到的内容。(也许这个问题可以帮助你理解语法。


PowerMock1.7.x需要至少2.8.9的模拟版本 (4(

但是,将Mockito 2.8.9与 powermock 一起使用需要您使用powermock-api-mockito2,因此请在 gradle 配置中进行更改。(五(

相关内容

  • 没有找到相关文章

最新更新