Spring 中的
@SpyBean
@MockBean
我已经浏览过 JavaDoc 但没有明白其中的区别。如果可能,请举例说明何时使用 MockBean 以及何时使用 SpyBean。
A mock(无论我们谈论普通对象还是bean)只是一个“空壳”。
该模拟对象与底层生产代码没有任何关系。它是一个“看起来”像 X 类的对象的对象。但是 X 所拥有的任何方法或字段都“真正”存在于那个模拟的东西上。 而 spy
wraps 围绕正在测试的类的 existing 对象。意思是:当你创建一个间谍时,你可以决定是否应该“拦截”对间谍的方法调用(然后你就可以像使用模拟一样使用间谍);或者被“传递”到间谍所包裹的实际物体。 请参阅此处