Как установить обложку и ввести условие if для! CollectionUtils.isEmpty (disReadings)? - PullRequest
1 голос
/ 03 августа 2020

Я изучаю junit и пытаюсь протестировать класс junit, и я не могу ввести часть кода if !CollectionUtils.isEmpty(disReadings) через код:

List<DisLRead> disLReadList = new ArrayList<>();
cHlDisList.forEach(dis -> {
List<Double> disReadingsL = disRepository
        .getReadsForDisId(dis.getDisId(), sDate, eDate);
        
if (!CollectionUtils.isEmpty(disReadingsL)) {
    double max = Round.RoundToTwoDecimal(
            disReadingsL.stream().mapToDouble(Double::doubleValue).max().getAsDouble());
    double min = Round.RoundToTwoDecimal(
            disReadingsL.stream().mapToDouble(Double::doubleValue).min().getAsDouble());
    double avg = Round.RoundToTwoDecimal(
            disReadingsL.stream().mapToDouble(Double::doubleValue).average().getAsDouble());
    DisLReading disLReading = new DisLReading();
    disLReading.setDisId(dis.getDisId());
    disLReading.setDisName(dis.getDisName());
    disLReading.setDisZ(dis.getDisZ());
    disLReading.setMax(max);
    disLReading.setMin(min);
    disLReading.setAverage(avg);
    disLReadList.add(disLReading);
}});

Обновление:

Фрагмент моего тестового класса:

@Mock
DisRepository disRepository;

@Mock
Round round;
    List<DisLRead> disLReadList = new ArrayList<>();
    List<Double> disReadingsL = new ArrayList<>();
    disReadingsL.add(100.0000);
    disReadingsL.add(200.0000);
    when(disRepository.getReadsForDisId(anyInt(), anyString(), anyString()))
            .thenReturn(disReadingsL);
    assertNotNull(disReadingsL);
    assertEquals(!CollectionUtils.isEmpty(disReadingsL), true);
    

Что я делаю не так? как войти в обложку этой части кода. Заранее спасибо!

1 Ответ

1 голос
/ 03 августа 2020

У вас есть более или менее два варианта: либо использовать фреймворк mock, например mockito, чтобы создать фиктивный объект для "disRepository", он будет выглядеть так:

DisrepositoryClass disrepositoryMock = Mockito.mock(disrepository.class);
when(disrepositoryMock.getReadsForDisId(any(),any(),any()).thenReturn(List.of(Double.of(1d)));

В качестве альтернативы вы создаете свой собственный объект Mock и предоставляете это.

...