如何获得 100% 的 lambda 方法覆盖率 [JAVA]

时间:2021-05-03 21:13:45

标签: java lambda code-coverage jacoco

我想尽一切办法让这个 lambda 方法得到 100% 的覆盖率,但无论我做什么我都不明白。

private String createMessage(List<FieldError> erros) {
    return erros.stream().collect(Collectors.toMap(FieldError::getField, FieldError::getDefaultMessage, (keyOld, keyNew) -> keyOld)).toString();
}

IMG1

IMG2

1 个答案:

答案 0 :(得分:1)

未覆盖的代码是 lambda 表达式的实现。您只有一个 lambda 表达式 (keyOld, keyNew) -> keyOld,这意味着该代码不会被执行。

lambda 表达式是 Collectors.toMap() 的第三个参数,即 BinaryOperator<U> mergeFunction,它被记录为 “一个合并函数,用于解决与相同键关联的值之间的冲突”.

如果数据中没有冲突,则不会执行 lambda 表达式,因此请确保使用 erros 列表包含 2 个或更多具有相同 {{1} 元素的数据测试代码} 值。

相关问题