jMockit を使用して netscape.javascript.JSObject への呼び出しをスタブ化しようとしていますが、これは残念ながらいくつかのネイティブ メソッドを含む抽象クラスであり、どちらも jMockit ではうまく機能しません。jMockitまたはプレーンJavaを使用してこれをスタブ化する方法はありますか(可能であれば新しいライブラリを導入する必要はありません)? モックを挿入しようとしているコードは次のようになります (質問しないでください)。
JSObject win = JSObject.getWindow(this);
String someVal = (String) win.call("foo", new String[] {""});
残念ながら、問題のコードを変更することはできません (繰り返しますが、聞かないでください)。そのため、何らかの種類の単体テストを実行できる唯一の方法は、スタブアウトする方法を理解するか、または別の方法で呼び出しを排除することです。 JS オブジェクト。私の現在のモック実装は、getWindowへの呼び出しに対してそれ自体の新しいインスタンスを返し、呼び出す呼び出しに対して定数文字列を返しますが、もちろん、実行時に不平を言って失敗します
クラスの再定義に失敗しました: メソッド修飾子を変更しようとしました
私の調査から、ネイティブメソッドをモックしようとしていることを発見しました。
編集:ターゲットプラットフォームのため、ビルド/テストにJDK 1.5を使用する必要があるため、1.5でソリューションを実行できる必要があります。