Вы пытаетесь смоделировать последний метод:
public final String readUTF() throws IOException {
return readUTF(this);
}
Mockito (v2.x) поддерживает это, но требует дополнительной настройки.Подробнее в документах :
Насмешка над итоговыми классами и методами - это инкубационная функция.Он использует комбинацию инструментария агента Java и подклассов для обеспечения возможности переноса этих типов.Поскольку это работает иначе, чем наш текущий механизм, и у этого есть другие ограничения, и поскольку мы хотим собрать опыт и отзывы пользователей, эта функция должна была быть явно активирована, чтобы быть доступной;это можно сделать с помощью механизма расширения mockito, создав файл src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
, содержащий одну строку:
mock-maker-inline
Итак, создайте файл с именем org.mockito.plugins.MockMaker
с этимcontent:
mock-maker-inline
Поместите этот файл в папку с именем mockito-extensions
на вашем пути к классам теста (если вы используете Maven, просто создайте эту папку в src/test/resources
)
Повторно запустите свой тест.
С этой конфигурацией я успешно выполнил ваш тест с:
- JUnit 4.12
- Mockito 2.7.19