gpt4 book ai didi

gradle - 为什么org.powermock:powermock-api-mockito:1.7.4依赖两个版本的Mockito-Core?

转载 作者:行者123 更新时间:2023-12-03 04:11:03 32 4
gpt4 key购买 nike

运行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是针对模仿版本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编译的
(3)

从模仿核心版本1.10.19到最新版本(当前为3.2.4)都有更新路径。

Gradle发现存在冲突,并且最低要求的版本是2.8.9
那就是您在输出中看到的。 (也许此question可以帮助您理解语法。)

PowerMock 1.7.x需要至少2.8.9的模仿版本(4)

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

关于gradle - 为什么org.powermock:powermock-api-mockito:1.7.4依赖两个版本的Mockito-Core?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60209369/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com