Jmockit實用技巧

2021-08-25 15:17:11 字數 2010 閱讀 3557

前言

jmockit是乙個超強大的ut mock工具, 與其他mock工具最大的特點是可以對final類, 靜態方法進行mock! 這是其他mock工具不可比的. 這也成為我們選它做ut的原因. 多種mock工具特色比較:

一jmockit載入注意事項

1 由於jmockit用到了jdk1.5的instrument特性, 所以必需用1.5以上的jdk執行

2 如果junit版本是4.x, 需要4.8以上的版本, 而且在設定classpath時jmockit.jar的路徑要設定在junit.jar前. 這樣保證使用jmockit的runner載入junit

3 jmockit還自帶了ut覆蓋率統計工具, 將jmockit-coverage.jar的路徑加入classpath, 每次ut完成就會自動生成覆蓋率報告, 方便省心.

二jmockit實用技巧之mockup類應用

jmockit提供了多種mock方式共開發者使用, 但給我感覺最有用的乙個類就是mockup. 用它幾乎能完成所有需要mock的操作: a)

mock介面. 使用mockup.getmockinstance()方便mock介面, 特別是定義了多個方法的介面. 手工打樁需要寫乙個此介面的假實現, 但測試中只呼叫了介面的乙個方法, 造成了其他沒呼叫方法還要寫一堆沒用的實現. 用了mockup打樁就只關注需要mock的方法即可:

packagedemo.jmockit;

publicinte***ceiservice

介面中有兩個方法, 使用mock返回乙個mock物件時只關注被呼叫的方法dosth()即可:

packagedemo.jmockit;

importmockit.mock;

importmockit.mockup;

importmockit.mockit;

importorg.junit.test;

publicclasstestcase

}.getmockinstance();

// 呼叫mock方法

service.dosth();

// 最後做還原動作, 確保用例之間不相互影響. 也可以放到test case的teardown方法中

mockit.teardownmocks();

} }

b)mock final類或靜態方法. 對於final類或靜態方法, 其他mock工具基本沒有好的辦法, 但用mockup就非常簡單:

packagedemo.jmockit;

publicclassutils }

packagedemo.jmockit;

importmockit.mock;

importmockit.mockup;

importmockit.mockit;

importorg.junit.after;

importorg.junit.test;

publicclasstestcase

}; // 列印mock後返回值

system.

out.println(utils.getformatstr()); }

@after

publicvoidteardown() }

Linux 實用技巧

值得一提的是vim是慈善軟體 charityware 如有贊助或評比得獎,所得將全部救助烏干達孤兒,軟體使用是免費的,歡迎手頭有點閒錢的使用者捐款贊助,如果沒銀子也沒關係,至少當有評比活動時 有獎金可拿的那種 應用技巧一 快速注釋 1 連續行注釋 使用vim vi編輯shell指令碼,在進行除錯的時...

vim實用技巧

以前習慣於eclipse,sourceinsight,vim用的不是很熟悉,在現在的公司中,vim是一種必備的技巧,慢慢,從難受到得心應手,vim還是比較好用的,下面記錄一點實用的技巧 1 vim ctags cscope是乙個強大的比擬於sourceinsight的字元介面的工具 2 ctrl 跳...

SQL PowerDesigner實用技巧

1,name code的轉變 我們設計資料庫的時候,軟體會自動把name的資料複製到code中,但我想設計時直接把 欄位名稱與含義寫在name中,這樣對設計時間的浪費是很少的 如我們以 欄位名 中文含義 來寫name,讓軟體自動複製前面的 欄位名到 code中.讓中文函義 自動複製到 comment...