издеваться над методом, который возвращает дженерики с подстановочными знаками, используя mockito
Я использую mockito 1.9.5. У меня есть следующий код:
public class ClassA {
public List<? extends MyInterface> getMyInterfaces() {
return null;
}
public static void testMock() {
List<MyInterface> interfaces = new ArrayList<>();
ClassA classAMock = mock(ClassA.class);
when(classAMock.getMyInterfaces()).thenReturn(interfaces);
}
Я получаю ошибку компиляции дляthenReturn(interfaces)
говоря:
"The method thenReturn(List<capture#1-of ? extends MyInterface>) in the type
OngoingStubbing<List<capture#1-of ? extends MyInterface>> is not applicable for the arguments
(List<MyInterface>)"
Тем не менее, когда я используюthenAnswer
метод mockito, я не получаю ошибку. Кто-нибудь может сказать мне, что происходит? Почему я получаю ошибку при использованииthenReturn
метод? Есть ли другой способ решить эту проблему, когдаClassA
предоставляется третьей стороной и не может быть изменен?