从 Mockito 2.2.6 中,您可以使用 MockingDetails Mockito.mockingDetails(Object mockToInspect) 检查模拟
。
您可以通过调用 : , , 等来深入研究属性...或者直接使用返回的方法:MockingDetails
getMock()
getStubbings()
getInvocations()
printInvocations()
模拟对象发生的调用的打印友好列表。此外,此方法还打印存根信息,包括未使用的存根。有关未使用的存根检测的详细信息,请参阅 MockitoHint。
例如,对于 JUnit 5:
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.Mock;
import org.mockito.Mockito;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
public class FooTest {
Foo foo;
@Mock
Bar bar;
@Test
void doThat() throws Exception {
Mockito.when(bar.getValue())
.thenReturn(1000L);
// ACTION
foo.doThat();
// ASSERTION
// ...
// add that to debug the bar mock
System.out.println(mockingDetails(bar).printInvocations());
}
}
你会得到一个输出,例如:
[Mockito] Interactions of: Mock for Bar, hashCode: 962287291
1. bar.getValue();
-> at Foo.doThat() (Foo.java:15)
- stubbed -> at FooTest.doThat(FooTest.java:18)
请注意,输出中带有引用行的类是指向源代码/测试类的链接。非常实用。