What is the difference between the @SpyBean
and @MockBean
annotations in Mockito?
I have already gone through the JavaDoc but didn\'t get
A mock (no matter if we talk about ordinary objects or beans) is simply an "empty shell".
That mock object doesn't have any relation to the underlying production code. It is an object that looks like being an object of class X. But none of the methods or fields that X has do "really" exist on that mocked thing.
Whereas a spy wraps around an existing object of your class under test. Meaning: when you create a spy, you can decide if method calls going to the spy should be "intercepted" (then you are using the spy as if it would be a mock); or be "passed through" to the actual object the spy wraps around.
See here for some bean specific examples. Or there ...