O meu código esta bem parecido com o do professor, a única diferença é que meu método leiloes() retorna uma lista com 2 objetos invés de 1. Sempre que eu tento fazer os asserts e o verify, da erro, se eu tiro funciona, mas aí testou nada. A stack trace não diz muito, aparece AssertError pro assertTrue, NullPointer pro Equals e no verify da o erro como se eu comentasse o método salvar.
@Mock
private LeilaoDao daoMock;
private FinalizarLeilaoService service;
@BeforeEach
public void beforeEach() {
MockitoAnnotations.initMocks(this);
this.service = new FinalizarLeilaoService(daoMock);
}
@Test
void finalizarLeilao() {
Mockito.when(daoMock.buscarLeiloesExpirados()).thenReturn(leiloes());
service.finalizarLeiloesExpirados();
leiloes().forEach(leilao -> {
Assert.assertTrue(leilao.isFechado());
Assert.assertEquals(new BigDecimal(2000), leilao.getLanceVencedor().getValor());
Mockito.verify(daoMock).salvar(leilao);
});
}