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

问题描述 投票:0回答:1

Spring 中的

@SpyBean
@MockBean
注解有什么区别?

我已经浏览过 JavaDoc 但没有明白其中的区别。如果可能,请举例说明何时使用 MockBean 以及何时使用 SpyBean

mocking mockito spring-test
1个回答
109
投票

A mock(无论我们谈论普通对象还是bean)只是一个“空壳”。

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

wraps 围绕正在测试的类的 existing 对象。意思是:当你创建一个间谍时,你可以决定是否应该“拦截”对间谍的方法调用(然后你就可以像使用模拟一样使用间谍);或者被“传递”到间谍所包裹的实际物体。 请参阅此处

以进一步阅读。

© www.soinside.com 2019 - 2024. All rights reserved.