Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Faltou abordar sobre @InjectMock e @Spy

Boa noite, no FinalizarLeilaoService poderia usar @InjectMock ao invés de instanciar a classe? E o @Spy qual seria a finalidade prática?

Obrigado!!

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas
solução!

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!!