Mockito.when для списка с подстановочным знаком

У меня есть получатель, возвращающий список с подстановочным знаком:

import java.util.List;

public interface Foo {
    List<? extends Bar> getList();
}

куда Bar это другой интерфейс.

Когда я хочу издеваться FooУ меня проблемы с определением поведения getList()

  Foo mockFoo = mock(Foo.class);
  Bar mockBar = mock(Bar.class);
  when(mockFoo.getList()).thenReturn(Collections.singletonList(mockBar));

Я получаю эту ошибку компиляции:

Метод thenReturn(List) в типе OngoingStubbing> не применим для аргументов (List)


Мое решение состоит в том, чтобы бросить результат:

when((List<Bar>) mockFoo.getList()).thenReturn(Collections.singletonList(mockBar)); 

Тогда я получаю предупреждение:

Тип безопасности: Не проверено приведение из списка в список

Предупреждение может быть удалено с @SuppressWarnings("unchecked")бросок в середине выражения не очень хорош.

Есть ли лучшее решение?

0 ответов

Другие вопросы по тегам