So I understand that in Mockito @InjectMocks will inject anything that it can with the annotation of @Mock, but how to handle this scenario?
@Mock
private MockObject1 mockObject1;
@Mock
private MockObject2 mockObject2;
@InjectMocks
private SystemUnderTest systemUnderTest = new SystemUnderTest();
Imagine that MockObject2 has an attribute that is of type MockObject1, and SystemUnderTest has an attribute of type MockObject2. I would like to have mockObject1 injected into mockObject2, and mockObject2 injected into systemUnderTest.
Is this possible with annotations?
Since I didn’t get any response here I asked on the Mockito forums. Here is a link to the discussion: https://groups.google.com/d/topic/mockito/hWwcI5UHFi0/discussion
To summarize the answers, technically this would kind of defeat the purpose of mocking. You should really only mock the objects needed by the
SystemUnderTestclass. Mocking things within objects that are themselves mocks is kind of pointless.If you really wanted to do it,
@Spycan help.