Я пытаюсь использовать jMockit для вызова вызова netscape.javascript.JSObject, который, к сожалению, является абстрактным классом с несколькими встроенными методами в нем, оба из которых не играют хорошо с jMockit. Есть ли какой-нибудь способ для меня заглушить это, либо с помощью jMockit, либо с помощью простой java (я бы предпочел не добавлять новую библиотеку, если это возможно)? Код, который я пытаюсь ввести в mock, выглядит примерно следующим образом (не спрашивайте):Как скомпилировать собственные методы с помощью jMockit
JSObject win = JSObject.getWindow (this);
String someVal = (String) win.call ("foo", new String [] {""});
К сожалению, я не могу изменить код, о котором идет речь (еще раз, не спрашивайте), поэтому единственный способ, который я могу выполнить с помощью какого-либо модульного тестирования, - это выяснить, как заглушить или иным образом устранить призывы к JSObject. Моя текущий макет реализация возвращает новый экземпляр себя для вызова GetWindow и возвращает постоянную строку для вызова вызова но, конечно, он не во время выполнения жалуясь
класса переопределения не удалось: попытка для модификации модификаторов метода
, который из моих исследований, которые я обнаружил, означает, что он пытается высмеять собственный метод.
Редактировать: Из-за целевой платформы мне нужно использовать JDK 1.5 для сборки/тестирования, поэтому любое решение должно быть жизнеспособным на 1.5.
Я использую самую последнюю версию, но проблема в том, что я вынужден использовать JDK 1.5, который не предоставляет интерфейс, чтобы позволить инструментальным средствам нативных методов, необходимых для их издевательства. – Orclev