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")
бросок в середине выражения не очень хорош.
Есть ли лучшее решение?