選擇要測試的方法,我們選中abs(int)方法,完成后在HelloTest.java中輸入:
JUnit會以以下順序執(zhí)行測試:(大致的代碼)
try {
HelloTest test = new HelloTest(); // 建立測試類實例
test.setUp(); // 初始化測試環(huán)境
test.testAbs(); // 測試某個方法
test.tearDown(); // 清理資源
}
catch…
setUp()是建立測試環(huán)境,這里創(chuàng)建一個Hello類的實例;tearDown()用于清理資源,如釋放打開的文件等等。以test開頭的方法被認為是測試方法,JUnit會依次執(zhí)行testXxx()方法。在testAbs()方法中,我們對abs()的測試分別選擇正數,負數和0,如果方法返回值與期待結果相同,則assertEquals不會產生異常。
如果有多個testXxx方法,JUnit會創(chuàng)建多個XxxTest實例,每次運行一個testXxx方法,setUp()和tearDown()會在testXxx前后被調用,因此,不要在一個testA()中依賴testB()。
直接運行Run->Run As->JUnit Test,可以看到JUnit測試結果:
綠色表示測試通過,只要有1個測試未通過,會顯示紅色并列出未通過測試的方法?梢栽噲D改變abs()的代碼,故意返回錯誤的結果(比如return n+1;),然后再運行JUnit會報告錯誤。
如果沒有JUnit面板,選擇Window->Show View->Other,打開JUnit的View:
JUnit通過單元測試,能在開發(fā)階段找出許多Bug,并且,多個Test Case可以組合成Test Suite,讓整個測試自動完成,尤其適合于XP方法。每增加一個小的新功能或者對代碼進行了小的修改,立刻運行一遍Test Suite,確保新增和修改的代碼不會破壞原有的功能,大大增強軟件的可維護性,避免代碼逐漸“腐爛”。