Проверьте API Java для Список . Метод get (int) объявлен для выброса только исключения IndexOutOfBoundException, которое расширяет RuntimeException. Вы пытаетесь заставить Mockito выдать исключение, которое недопустимо для этого конкретного вызова метода.
Для уточнения. Интерфейс List не предоставляет выброшенное исключение для метода get (), поэтому Mockito не работает. Когда вы создаете фиктивный список, Mockito использует определение List.class, чтобы создать его макет. Поведение, которое вы указываете с помощью when(list.get(0)).thenThrow(new SomeException())
, не соответствует сигнатуре метода в List.class, поэтому Mockito завершается ошибкой. Если вы действительно хотите это сделать, то предложите Mockito выбросить new RuntimeException()
или даже лучше - new ArrayIndexOutOfBoundsException()
, поскольку API указывает, что это единственное допустимое исключение, которое будет выдано.