【发布时间】:2021-12-31 01:30:21
【问题描述】:
我在我的 Spring 项目中使用 JUnit 5,并希望使用 Mockito 进行一些模拟。所以我添加了几个 Mockito 依赖项:mockito-core 2.21.0 和 mockito-junit-jupiter 4.0.0。
然后根据我在某个地方找到的一些指导,我将它添加到我非常简单的测试类中:
@ExtendWith(MockitoExtension.class)
但是当我运行测试时,我得到了这个令人困惑的错误:
java.lang.NoSuchMethodError: org.mockito.internal.configuration.plugins.Plugins.
getMockitoLogger()Lorg/mockito/plugins/MockitoLogger;
...
但我没有在任何地方使用 MockitoLogger 类,或者至少没有明确使用。那么是什么导致了这种奇怪现象呢?
【问题讨论】:
-
github.com/mockito/mockito/issues/1604 试试 mockito-core 2.24.0
-
哇,这确实让我克服了那个错误。但现在我得到:“Mockito 只能模拟非私人和非最终课程。”然而,我嘲笑的课程两者都不是。
-
有趣的是,然后我找到了关于“Mockito 只能模拟非私有和非最终类”的问题的答案,其中包括建议切换到 mockito-core-2.23.0 的 github。当我这样做时,我的嘲笑似乎成功了。