Я установил тестовый класс Mockito для тестирования метода, который генерирует переменную с использованием Java 8 Streams. По сути, это набор объектов (currentTr
), которые имеют свойство isDeleted
. Это строка, которая генерирует эту переменную.
FPTR = Stream.of(currentTR)
.peek(CMService::markAsDeleted)
.collect(Collectors.toSet();
При нормальной работе работает нормально. Объекты в этой коллекции устанавливаются как удаленные.
Проблема в том, что когда я запускаю свои тестовые случаи, эта переменная не содержит объектов, установленных для удаления (другими словами, кажется, что либо peek()
, либо указанный метод (markAsDeleted
) никогда не вызывается).
Я думал об использовании when().thenCallRealMethod()
, однако, учитывая, что markAsDeleted
является пустым методом, я получаю сообщение об ошибке, которое также не позволит мне сделать это. Ошибка:
when(cmservice.markAsDeleted(anyObject())).thenCallRealMethod();
java: тип 'void' здесь не разрешен
Я смоделировал CMService в тестовом поле следующим образом:
@Mock
CMService cmservice;
Есть ли способ вызвать вызов метода в .peek()
, чтобы я вообще получил правильную переменную или это проблема установки?