Mockito中@SpyBean和@MockBean有什么区别?

Vik*_*ary 12 mocking spring-test mockito

Mockito中的注释@SpyBean@MockBean注释有什么区别?

我已经完成了JavaDoc但没有得到改变.如果可能的话,请举例说明何时使用MockBean和何时使用SpyBean.

Gho*_*ica 22

一个模拟的(如果我们谈论无论是普通的物体或豆类)只是一个"空壳".

该模拟对象与底层生产代码没有任何关系.它是一个看起来像是类X的对象的对象.但是X所做的任何方法或字段都没有"真正"存在于那个被模拟的东西上.

而间谍包装围绕现有的类的对象下测试.含义:当你创建一个间谍时,你可以决定是否应该"拦截"进入间谍的方法调用(然后你就像使用间谍一样使用间谍); 或被"传递"到间谍包裹的实际物体.

有关bean的具体示例,请参见此处.还是那里 ......

  • 要点是:到处都有记录。只需阅读我提供的链接即可;或我刚刚添加的其他链接。*间谍*不仅仅是*模拟*,所以如果有的话,模拟在这里是“有限的”。我希望这足以使我的答案可以接受......正如所说:不要指望我重复已经在许多地方记录的描述。 (2认同)

heu*_*eug 6

非常重要的是要注意,您引用的两个注释来自 Spring Boot,而不是 Mockito(即使它们来自的 spring 库基于 Mockito)

混合测试框架可能会产生令人困惑和不准确的结果。