我試圖使用jMockit將一個調用stub out到netscape.javascript.JSObject,這不幸是一個抽象類,其中有幾個本地方法,兩者都不能很好地發揮與jMockit。有沒有什麼方法可以讓我把它與jMockit一起存檔,或者使用普通的java(如果可能,我不想引入新的庫)?我試圖注入模擬的代碼看起來像下面這樣(不要問):如何使用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 2009-12-01 20:13:22