如何启用Mockito调试消息?

Der*_*har 31 java testing debugging mockito

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

Bri*_*ice 38

Mockito 1.9.0引入了监听器,现在捆绑了一个详细的记录器:

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

List mockWithLogger = mock(List.class, withSettings().verboseLogging());
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅http://docs.mockito.googlecode.com/hg/latest/org/mockito/MockSettings.html#verboseLogging ()

干杯,

  • @DanielBrotherston nope,但你可以使用常规`mock(type,withSettings().verboseLogging())`来初始化字段.它将被'InjectMocks`拾取 (3认同)
  • 可以使用@Mock 注释字段设置verboseLogging 吗? (2认同)

est*_*ani 11

布莱斯的答案是要走的路,但另一种选择是:

new org.mockito.internal.debugging.MockitoDebuggerImpl().printInvocations(mockedObject);
Run Code Online (Sandbox Code Playgroud)

这只是将该点之前发生的交互打印到给定选项.不够强大,但是诀窍并且可能对某些情况有用(即使用模拟注释时)

例如,这应该根据MockitoSettings工作

spiedObject = mock(ToMock.class, withSettings().spiedInstance(toMockInstance).verboseLogging())
Run Code Online (Sandbox Code Playgroud)

虽然在1.9.5似乎没有间谍任何东西,但它只是嘲笑它.

  • `MockitoDebuggerImpl` 现已弃用。相反,请使用:`Mockito.mockingDetails(myMock).printInitations()` (2认同)