【问题标题】:How do I enable Mockito debug messages?如何启用 Mockito 调试消息?
【发布时间】:2012-08-03 19:28:11
【问题描述】:

如何启用Mockito 调试消息?特别是,我想打印带有 when() 存根的方法的详细信息以及与这些方法的每次交互。

【问题讨论】:

    标签: java debugging testing mockito


    【解决方案1】:

    Mockito 1.9.0 引入了侦听器,现在捆绑了详细记录器:

    所以基本上如果你想要简单而愚蠢的日志,只需执行以下操作:

    List mockWithLogger = mock(List.class, withSettings().verboseLogging());
    

    更多信息请参见http://docs.mockito.googlecode.com/hg/latest/org/mockito/MockSettings.html#verboseLogging()

    干杯,

    【讨论】:

    • 可以用@Mock注解的字段设置verboseLogging吗?
    • @DanielBrotherston 不,但您可以使用常规 mock(type, withSettings().verboseLogging()) 初始化该字段。将被InjectMocks领取
    • 这应该保存在哪里?
    【解决方案2】:

    Brice 答案是可行的方法,但另一种选择是:

    new org.mockito.internal.debugging.MockitoDebuggerImpl().printInvocations(mockedObject);
    

    它只是将在该点之前发生的交互打印到给定选项。不够健壮,但可以解决问题,并且在某些情况下可能有用(即使用模拟注释时)

    例如,这应该根据MockitoSettings工作

    spiedObject = mock(ToMock.class, withSettings().spiedInstance(toMockInstance).verboseLogging())
    

    虽然在 1.9.5 中似乎没有监视任何东西,它只是在嘲笑它。

    【讨论】:

    • 我更喜欢你的回答——它提供了更多细节,而且调试器真的帮助了我。
    • MockitoDebuggerImpl 现在已弃用。相反,请使用:Mockito.mockingDetails(myMock).printInvocations()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多