Dlaczego Mockito @InjectMocks może być czymś, czego należy unikać?

Czemu@InjectMocks może być rzeczą, której należy unikać dla tego rodzaju testu.

@RunWith(MockitoJUnitRunner.class)
public class MyClassTest {

    @Mock
    private Bar bar;

    @InjectMocks
    private Foo foo; // created by Mockito

    @Test
    public void shouldCallMethod() {

        // when
        foo.myMethod();

        // then
        ...
    }
}
Foo.java
public class Foo {

    private final Bar bar;

    public Foo(Bar bar) {
        this.bar = bar;
    }
...

Czytałem o tym w komentarzach do tej odpowiedzi:https://stackoverflow.com/a/21172873/516167

Informacje o @InjectMocks

Zaznacz pole, na którym należy wykonać wstrzyknięcie.

Pozwala na strzykawkę i zastrzyk szpiegowski.Minimalizuje powtarzalne zastrzyki próbne i szpiegowskie.

Odniesienie:@InjectMocks JavaDoc.

questionAnswers(2)

yourAnswerToTheQuestion