如何使用 Mockito 在模拟上显示所有调用

2022-01-14 00:00:00 debugging unit-testing mockito java junit

我有一个失败的单元测试,我不确定原因.我希望能够看到在被测系统中发生的模拟上的所有调用.这不是我想要的所有测试的行为,只是我需要快速调整以找出问题所在的测试.

I have a unit test that is failing and I'm unsure why. I want to be able to see all invocations on the mock that occur in the System Under Test. This is not the behavior that I want for all tests always, simply for a test that I need to quickly tweak to be able to figure out what's wrong.

但是,这似乎有点像 hack.是否可以在 Mockito 中本地执行此操作,而无需使用 Thread.currentThread().getStackTrace()?

However, it seems kind of like a hack. Is it possible to do this natively in Mockito, without having to use Thread.currentThread().getStackTrace()?

这不是首选,因为堆栈跟踪包括 Mockito 内部使用的所有其他调用.

This is not preferred, because the stack trace includes all the other invocations used internally by Mockito.

推荐答案

此功能自 Mockito 1.9.5 起内置.只需使用

This feature is builtin since Mockito 1.9.5. Just use

mock(ClassToMock.class, withSettings().verboseLogging())

相关文章