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 @InjectMocksZaznacz 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.