Using mockito any() throws java.lang.IllegalAccessError: class org.mockito.Matchers tried to access private method
Using mockito any() throws java.lang.IllegalAccessError: class org.mockito.Matchers tried to access private method
我遇到了异常
java.lang.IllegalAccessError: class org.mockito.Matchers tried to access private method 'void org.mockito.internal.progress.ThreadSafeMockingProgress.()' (org.mockito.Matchers and org.mockito.internal.progress.ThreadSafeMockingProgress are in unnamed module of loader 'app')
at org.mockito.Matchers.(Matchers.java:107)
当我尝试在 mockito when() 存根调用中使用匹配器 any() 时。 class 参数类型用于 binance spot java 库 here
中的“NewOrder”
我正在努力
when(mockBinanceApiRestClient.newOrder(any(NewOrder.class))).thenReturn(buyOrderResp);
嘲笑BinanceApiRestClient。
any() 和 when() 是从 org.mockito.Mockito 静态导入的。
这真是一场噩梦,为什么它不起作用。非常感谢任何帮助。
您的类路径中似乎有两个相互冲突的 Mockito 版本。
ThreadSafeMockingProgress was converted to a singleton back in 2016,其构造函数改为private。
另一方面,您似乎在使用 org.mockito.Matchers
,
它被弃用了很长一段时间,最终在 Mockito 4.x
中被删除
当我们使用下面的依赖项时,我也遇到了类似的问题 -
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>2.0.2-beta</version>
<scope>test</scope>
</dependency>
我们有以下导致 IllegalAccess 异常的导入语句
import static org.mockito.Matchers.any;
我用 ArgumentMatchers 替换了 Matchers,如下所示 -
import static org.mockito.ArgumentMatchers.any;
这解决了问题。
我遇到了异常
java.lang.IllegalAccessError: class org.mockito.Matchers tried to access private method 'void org.mockito.internal.progress.ThreadSafeMockingProgress.()' (org.mockito.Matchers and org.mockito.internal.progress.ThreadSafeMockingProgress are in unnamed module of loader 'app')
at org.mockito.Matchers.(Matchers.java:107)
当我尝试在 mockito when() 存根调用中使用匹配器 any() 时。 class 参数类型用于 binance spot java 库 here
中的“NewOrder”我正在努力
when(mockBinanceApiRestClient.newOrder(any(NewOrder.class))).thenReturn(buyOrderResp);
嘲笑BinanceApiRestClient。 any() 和 when() 是从 org.mockito.Mockito 静态导入的。 这真是一场噩梦,为什么它不起作用。非常感谢任何帮助。
您的类路径中似乎有两个相互冲突的 Mockito 版本。
ThreadSafeMockingProgress was converted to a singleton back in 2016,其构造函数改为private。
另一方面,您似乎在使用 org.mockito.Matchers
,
它被弃用了很长一段时间,最终在 Mockito 4.x
当我们使用下面的依赖项时,我也遇到了类似的问题 -
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>2.0.2-beta</version>
<scope>test</scope>
</dependency>
我们有以下导致 IllegalAccess 异常的导入语句
import static org.mockito.Matchers.any;
我用 ArgumentMatchers 替换了 Matchers,如下所示 -
import static org.mockito.ArgumentMatchers.any;
这解决了问题。