Mockito - 我理解间谍调用对象的真实方法,而模拟调用双重对象的方法。除非有代码气味,否则还要避免间谍。但是,间谍是如何工作的,我应该什么时候真正使用它们?它们与模拟有何不同? 原文由 Abhinav 发布,翻译遵循 CC BY-SA 4.0 许可协议
从技术上讲,“模拟”和“间谍”都是一种特殊的“测试替身”。 不幸的是,Mockito 使这种区别变得奇怪。 mockito 中的模拟是其他模拟框架中的普通模拟(允许您存根调用;即,从方法调用中返回特定值)。 mockito 中的间谍是其他模拟框架中的部分模拟(部分对象将被模拟,部分将使用真实方法调用)。 原文由 Crazyjavahacking 发布,翻译遵循 CC BY-SA 3.0 许可协议
从技术上讲,“模拟”和“间谍”都是一种特殊的“测试替身”。
不幸的是,Mockito 使这种区别变得奇怪。
mockito 中的模拟是其他模拟框架中的普通模拟(允许您存根调用;即,从方法调用中返回特定值)。
mockito 中的间谍是其他模拟框架中的部分模拟(部分对象将被模拟,部分将使用真实方法调用)。