Я перепробовал все, чтобы получить 100% охват этого лямбда-метода, но, что бы я ни делал, я этого не понимаю.

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

IMG1

IMG2

0
Wiliam Junior 4 Май 2021 в 00:13

1 ответ

Лучший ответ

Непокрытый код - это реализация лямбда-выражения. У вас есть только одно лямбда-выражение (keyOld, keyNew) -> keyOld, что означает, что этот код не выполняется.

Лямбда-выражение является третьим аргументом функции Collectors.toMap(), т.е. BinaryOperator<U> mergeFunction, который задокументирован как " функция слияния, используемая для разрешения конфликтов между значениями, связанными с одним и тем же ключом ".

Если в данных нет коллизий, лямбда-выражение не будет выполняться, поэтому убедитесь, что вы тестируете код с данными, в которых список erros содержит 2 или более элементов с одинаковым значением getField().

0
Andreas 3 Май 2021 в 22:24