У меня есть метод, использующий репозиторий использующий Optional.orElseThrow внутри сервиса.
Как правильно реализовать конструкцию when(restLogRepository.findById(anyLong()).thenReturn(log);
? Мой способ, очевидно, неправильный
Сервис
public RestLogDto readById(Long id) {
return DtoConverter.convert(
restLogRepository.findById(id).orElseThrow(() -> new NoSuchElementException("Element not found")),
modelMapper);
}
Тестовый метод (неправильный)
@Test
public void readById() {
RestLog log = new RestLog();
log.setLogId(LOG_ID);
when(restLogRepository.findById(anyLong()).orElseThrow(any(Supplier.class))).thenReturn(log);
RestLogDto result = DtoConverter.convert(log, mapper);
assertEquals(result, logReader.readById(LOG_ID));
}
DtoConverter entity = spy(new DtoConverter());
entity.setId(5);
doReturn(Optional.of(entity)).when(restLogRepository).findById(any());
assertEquals(5, logReader.readById(5));
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости