Как смоделировать лямбда-выражение anymatch вернуть объект - PullRequest
1 голос
/ 09 апреля 2019

Я тестирую Java-метод, который использует лямбда-выражение для сопоставления со значением.

Я хочу проверить условие как на true, так и на false.

employee.getAppraisals().stream().anyMatch(appraisal::isPromoted)

И я попытался использоватьприведенный ниже код для создания модульного теста mockito, но он никогда не работает.Ссылка, по которой я следовал: Использовать Mockito 2.0.7 для макетирования лямбда-выражений

Mockito.when(employee.getAppraisals()
      .stream()
      ..anyMatch(p->p.equals(Mockito.any()))).thenReturn(true)

Но я не знаю, как смоделировать объект Promotion, чтобы вернуть значение свойства bean proeprty Promotion.isPromoted какправда с использованием mockito.

1 Ответ

0 голосов
/ 09 апреля 2019

Вы не хотите издеваться над всей цепочкой stream ().

Вы хотите здесь высмеять две вещи, getAppraisals(), которые будут возвращать коллекцию mock(Appraisal.class).

ЭтиЗатем макеты оценки будут отвечать на вызов метода для isPromoted().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...