Да, вы можете смоделировать объект, хотя, возможно, не удастся создать его подкласс (в любом случае, конечно, не слишком тесно связавшись с загрузчиком классов). Здесь , как вы делаете это с JMock.
Насмешка таким способом позволяет вам сохранить тип, не разбивая его на подклассы, хотя, вероятно, будет довольно трудно или невозможно выявить только определенное поведение. Так что этот метод подходит для тестирования классов, использующих этот класс, а не для тестирования самого класса.
Если у вас действительно есть доступ к исходному коду класса, вы можете реализовать внутренний класс, который позволяет расширять его, хотя, если бы вы могли это сделать, вы могли бы просто сделать один из пакетов конструкторов приватным.
Существуют также динамические языки, которые позволят вам выполнять подклассы и реализовывать интерфейс Java, с которым может взаимодействовать код Java, но я не очень знаком с деталями.