Boa noite, no FinalizarLeilaoService poderia usar @InjectMock ao invés de instanciar a classe? E o @Spy qual seria a finalidade prática?
Obrigado!!
Boa noite, no FinalizarLeilaoService poderia usar @InjectMock ao invés de instanciar a classe? E o @Spy qual seria a finalidade prática?
Obrigado!!
Oi Julian,
O @InjectMock
é apenas para simplificar mais ainda o código de testes, pois ele já instancia o objeto e injeta nele os mocks automaticamente:
@ExtendWith(MockitoExtension.class)
class FinalizarLeilaoServiceTest {
@InjectMocks
private FinalizarLeilaoService service;
@Mock
private LeilaoDao leilaoDao;
@Mock
private EnviadorDeEmails enviadorDeEmails;
//nao precisa mais do metodo com @BeforeEach
}
Quanto a anotação @Spy
, a diferença é que de fato os métodos do objeto serão invocados, diferente do @Mock que apenas "finge" que chamou o método.
O @Spy você utiliza quando quer utilizar um objeto real, e precisa verificar se os métodos dele foram chamados.
Rodrigo, agora ficou mais claro pra mim, muito obrigado!!