Testando update
@Test
public void updateShouldUpdateWhenIdExistsAndValidData() {
//fazendo o Spy do service novamente parar que possamos acessar a função
//validateData
ProductService serviceSpy = Mockito.spy(productService);
Mockito.doNothing().when(serviceSpy).validateData(productDTO);
//criando um DTO resultado, usando o Spy e o update
ProductDTO result = serviceSpy.update(existingId, productDTO);
//assertions
Assertions.assertNotNull(result);
Assertions.assertEquals(result.getId(), existingId);
} @Test
public void updateShouldReturnInvalidDataExceptionWhenIdExistsAndProductNameIsBlank() {
//settando inicialmente nome para nulo
productDTO.setName("");
//fazendo spy novamente
ProductService serviceSpy = Mockito.spy(productService);
//dessa vez doThrow, pois esperamos uma exception
Mockito.doThrow(InvalidDataException.class)
.when(serviceSpy).validateData(productDTO);
//assertion
Assertions.assertThrows(InvalidDataException.class, () -> serviceSpy.update(existingId, productDTO));
}Atualizado