Java 如何junit覆盖和输入的if条件!收藏物品。是否空白(拆封)?
我正在学习junit并试图对类进行junit测试,但我无法输入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
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(…)
以返回非空的列表(该列表也可以模拟)。我尝试过,但仍然没有覆盖