如何启用Mockito调试信息?

36

我怎样启用Mockito调试信息?具体来说,我想要打印使用when()存根化的方法的详细信息以及与那些方法的每次交互。

2个回答

45

2
@Mock注释的字段是否可以设置verboseLogging? - Daniel Brotherston
4
不,但你可以使用常规的mock(type, withSettings().verboseLogging())初始化字段。这将被InjectMocks检测到。 - bric3
这应该放在哪里? - Narendra Jaggi

13

布莱斯的回答是可行的,但另一个选项是:

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

该选项会打印在此之前发生的交互。虽然不够健壮,但功能齐全,对于某些情况(例如使用模拟注释时)可能很有用。

例如,根据MockitoSettings,应该可以使用此方法。

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

尽管在1.9.5中似乎没有发现任何间谍活动,只是将其嘲弄。


我更喜欢你的答案——它提供了更多细节,调试器确实帮了我很多。 - smirnoff
2
MockitoDebuggerImpl is now deprecated. Instead, use: Mockito.mockingDetails(myMock).printInvocations() - Luke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接