答案在文档中:
真正的部分模拟(自1.8.0开始)
最后,在邮件列表上进行了许多内部辩论和讨论之后,Mockito添加了部分模拟支持。以前我们认为部分模拟是代码的味道。但是,我们发现了部分模拟的合法用例。
在1.8版之前,spy()并未生成真正的部分模拟,并且对某些用户造成了混乱。阅读更多有关间谍的信息:此处或在javadoc中获取spy(Object)方法。
callRealMethod()是在之后引入的
spy(),但为了确保向后兼容,当然保留了spy()。
否则,您是对的:间谍的所有方法都是真实的,除非被阻止。除非
callRealMethod()调用,否则模拟的所有方法都是存根的。一般而言,我宁愿使用
callRealMethod(),因为它不会强迫我使用
doXxx().when()成语而不是传统
when().thenXxx()



