Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何junit覆盖和输入的if条件!收藏物品。是否空白(拆封)?_Java_Unit Testing_Junit_Mockito_Code Coverage - Fatal编程技术网

Java 如何junit覆盖和输入的if条件!收藏物品。是否空白(拆封)?

Java 如何junit覆盖和输入的if条件!收藏物品。是否空白(拆封)?,java,unit-testing,junit,mockito,code-coverage,Java,Unit Testing,Junit,Mockito,Code Coverage,我正在学习junit并试图对类进行junit测试,但我无法输入if!CollectionUtils.isEmpty(disReadings)通过代码的部分代码: List<DisLRead> disLReadList = new ArrayList<>(); cHlDisList.forEach(dis -> { List<Double> disReadingsL = disRepository .getReadsForDisId(dis

我正在学习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);
}});
List disLReadList=new ArrayList();
cHlDisList.forEach(dis->{
列表disReadingsL=disRepository
.getReadsForDisId(dis.getDisId(),sDate,eDate);
如果(!CollectionUtils.isEmpty(disReadingsL)){
double max=四舍五入。四舍五入到十进制(
disReadingsL.stream().mapToDouble(Double::doubleValue.max().getAsDouble());
双精度最小值=四舍五入(
disReadingsL.stream().mapToDouble(Double::doubleValue.min().getAsDouble());
平均双精度=四舍五入。四舍五入到十进制(
disReadingsL.stream().mapToDouble(Double::doubleValue.average().getAsDouble());
DisLReading DisLReading=新的DisLReading();
disLReading.setDisId(dis.getDisId());
disLReading.setDisName(dis.getDisName());
disLReading.setDisZ(dis.getDisZ());
解读.setMax(max);
读写设置最小值(最小值);
解读平均值(平均值);
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);
    
@Mock
不名誉的不名誉的;
@嘲弄
圆圆的;
List disLReadList=新建ArrayList();
List disReadingsL=new ArrayList();
删去第1条,添加(100.0000);
删去第1条增补(200.0000);
当(disRepository.getReadsForDisId(anyInt(),anyString(),anyString()))
.然后返回(不读SL);
资产不为空(不读SL);
资产质量(!CollectionUtils.isEmpty(disReadingsL),真实);

我做错了什么?如何输入封面这部分代码。提前谢谢

您或多或少有两种选择,一种是使用mockito这样的模拟框架为“disRepository”创建一个模拟对象,如下所示:

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

或者,您也可以创建自己的模拟对象并提供它。

请阅读:---我将模拟调用
disRepository.getReadsFordSid(…)
以返回非空的
列表(该列表也可以模拟)。我尝试过,但仍然没有覆盖