我們創建一個Java工程,添加一個example.Hello類,首先我們給Hello類添加一個abs()方法,作用是返回絕對值:
測試對于保證軟件開發質量有著非常重要的作用,單元測試更是必不可少,JUnit是一個非常強大的單元測試包,可以對一個/多個類的單個/多個方法測試,還可以將不同的TestCase組合成TestSuit,使測試任務自動化。Eclipse同樣集成了JUnit,可以非常方便地編寫TestCase。
下一步,我們準備對這個方法進行測試,確保功能正常。選中Hello.java,右鍵點擊,選擇New->JUnit Test Case:
Eclipse會詢問是否添加junit.jar包,確定后新建一個HelloTest類,用來測試Hello類。
選中setUp()和tearDown(),然后點擊“Next”:
選擇要測試的方法,我們選中abs(int)方法,完成后在HelloTest.java中輸入:
JUnit會以以下順序執行測試:(大致的代碼)
try { HelloTest test = new HelloTest(); // 建立測試類實例 test.setUp(); // 初始化測試環境 test.testAbs(); // 測試某個方法 test.tearDown(); // 清理資源 } catch… |
綠色表示測試通過,只要有1個測試未通過,就會顯示紅色并列出未通過測試的方法??梢栽噲D改變abs()的代碼,故意返回錯誤的結果(比如return n+1;),然后再運行JUnit就會報告錯誤。
如果沒有JUnit面板,選擇Window->Show View->Other,打開JUnit的View:
JUnit通過單元測試,能在開發階段就找出許多Bug,并且,多個Test Case可以組合成Test Suite,讓整個測試自動完成,尤其適合于XP方法。每增加一個小的新功能或者對代碼進行了小的修改,就立刻運行一遍Test Suite,確保新增和修改的代碼不會破壞原有的功能,大大增強軟件的可維護性,避免代碼逐漸“腐爛”。