我尽了一切努力在这个lambda方法上获得100%的覆盖率,但是无论我做什么,我都不明白。
private String createMessage(List<FieldError> erros) {
return erros.stream().collect(Collectors.toMap(FieldError::getField, FieldError::getDefaultMessage, (keyOld, keyNew) -> keyOld)).toString();
}


发布于 2021-05-03 22:24:30
未发现的代码是lambda表达式的实现。您只有一个lambda表达式(keyOld, keyNew) -> keyOld,这意味着代码不会被执行。
lambda表达式是Collectors.toMap()的第三个参数,即BinaryOperator<U> mergeFunction,它被记录为“一个合并函数,用于解决与同一键关联的值之间的冲突”。
如果数据中没有冲突,则不会执行lambda表达式,因此请确保使用erros列表包含两个或多个具有相同getField()值的元素的数据测试代码。
https://stackoverflow.com/questions/67375883
复制相似问题