【问题标题】:adding Mockito gives logging error when running a test添加 Mockito 会在运行测试时出现日志记录错误
【发布时间】: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。当我这样做时,我的嘲笑似乎成功了。

标签: java junit mockito


【解决方案1】:

如果你想模拟一个方法并在同一个类中测试一个方法,你必须使用@Spy 而不是@Mock。然后你应该删除 @BeforeEach 代码块。此外,您必须调用要测试的方法。

请分享更多代码,谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-18
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多