軟件藝術(shù)思考者 |
|
|||
混沌,彷徨,立志,蓄勢... |
公告
日歷
導(dǎo)航隨筆分類(86)
隨筆檔案(85)
搜索最新評(píng)論
閱讀排行榜評(píng)論排行榜 |
在
Eclipse
中使用JUnit(轉(zhuǎn))
自:http://dev.21tx.com 2004年12月01日 J2ME開發(fā)網(wǎng) asklxf 測試對(duì)于保證軟件開發(fā)質(zhì)量有著非常重要的作用,單元測試更是必不可少,JUnit是一個(gè)非常強(qiáng)大的單元測試包,可以對(duì)一個(gè)/多個(gè)類的單個(gè)/多個(gè)方法測試,還可以將不同的TestCase組合成TestSuit,使測試任務(wù)自動(dòng)化。Eclipse同樣集成了JUnit,可以非常方便地編寫TestCase。 我們創(chuàng)建一個(gè)Java工程,添加一個(gè)example.Hello類,首先我們給Hello類添加一個(gè)abs()方法,作用是返回絕對(duì)值:
下一步,我們準(zhǔn)備對(duì)這個(gè)方法進(jìn)行測試,確保功能正常。選中Hello.java,右鍵點(diǎn)擊,選擇New->JUnit Test Case:
Eclipse會(huì)詢問是否添加junit.jar包,確定后新建一個(gè)HelloTest類,用來測試Hello類。
選中setUp()和tearDown(),然后點(diǎn)擊“Next”:
選擇要測試的方法,我們選中abs(int)方法,完成后在HelloTest.java中輸入: ![]() JUnit會(huì)以以下順序執(zhí)行測試:(大致的代碼)
setUp()是建立測試環(huán)境,這里創(chuàng)建一個(gè)Hello類的實(shí)例;tearDown()用于清理資源,如釋放打開的文件等等。以test開頭的方法被認(rèn)為是測試方法,JUnit會(huì)依次執(zhí)行testXxx()方法。在testAbs()方法中,我們對(duì)abs()的測試分別選擇正數(shù),負(fù)數(shù)和0,如果方法返回值與期待結(jié)果相同,則assertEquals不會(huì)產(chǎn)生異常。 如果有多個(gè)testXxx方法,JUnit會(huì)創(chuàng)建多個(gè)XxxTest實(shí)例,每次運(yùn)行一個(gè)testXxx方法,setUp()和tearDown()會(huì)在testXxx前后被調(diào)用,因此,不要在一個(gè)testA()中依賴testB()。 直接運(yùn)行Run->Run As->JUnit Test,就可以看到JUnit測試結(jié)果:
綠色表示測試通過,只要有1個(gè)測試未通過,就會(huì)顯示紅色并列出未通過測試的方法。可以試圖改變abs()的代碼,故意返回錯(cuò)誤的結(jié)果(比如return n+1;),然后再運(yùn)行JUnit就會(huì)報(bào)告錯(cuò)誤。 如果沒有JUnit面板,選擇Window->Show View->Other,打開JUnit的View:
JUnit通過單元測試,能在開發(fā)階段就找出許多Bug,并且,多個(gè)Test Case可以組合成Test Suite,讓整個(gè)測試自動(dòng)完成,尤其適合于XP方法。每增加一個(gè)小的新功能或者對(duì)代碼進(jìn)行了小的修改,就立刻運(yùn)行一遍Test Suite,確保新增和修改的代碼不會(huì)破壞原有的功能,大大增強(qiáng)軟件的可維護(hù)性,避免代碼逐漸“腐爛”。
評(píng)論:
|
![]() |
|
Copyright © 智者無疆 | Powered by: 博客園 模板提供:滬江博客 |
觀音菩薩贊