摘要:軟件開發(fā)和軟件測試像兩兄弟,他們密不可分、協(xié)同合作,目標只有一個,那是成功開發(fā)出高質(zhì)量的軟件。開發(fā)與測試之間的關系如此密切,讓我們很難徹底的將兩者嚴格的劃分開來。單元測試做為測試的一部分,一般都由編碼人員來承擔,對于模塊級一直都是誰編碼、誰測試。因此測試不僅僅是測試人員的事情,作為編碼人員也需要懂得測試的基本方法,以通過單元測試提交高質(zhì)量的程序模塊。
關鍵字:NetBeans,Junit,單元測試
1 引言:
任何一個程序員都知道單元測試的重要性,沒有經(jīng)過嚴格測試的模塊是“靠不住”的,組裝過程會出現(xiàn)越來越多的Bug,甚至到了客戶那里都不能正常工作,這簡直是一場災難。雖然每個程序員都深刻的知道這點,但是很多時候在進度的壓力下,程序員不得不放棄部分甚至是全部的單元測試。特別是在我國現(xiàn)在的國情下,獻禮項目太多,建設方的領導為了在某個“有意義”的日子里使項目上線,往往迫使軟件開發(fā)方違背客觀事實,在不可能的工期內(nèi)完工。程序員作為項目的底層人員,自然沒有力量來進行反抗,當他們加班加點都無法在規(guī)定時間完成,于是放棄測試成為了他們的選擇。
很快這成為一個惡性循環(huán):壓力越大,編寫的測試越少。編寫的測試越少,的效率越低,并且代碼越不穩(wěn)定。而效率越低并且越不精確,開發(fā)人員感覺越有壓力。
程序員的精力在這樣的惡性循環(huán)中被耗費掉。想要打破它需要一種外界的影響。所謂的這種外界的影響,其實是一個簡單的測試框架,它可以讓我們通過做很少的測試,來達到完整的測試,減少我們編寫測試代碼的時間。
2 NetBeans 5.0對單元測試的支持
NetBeans IDE 5.0 引入了對基于 NetBeans 平臺的 IDE 模塊和富客戶端程序開發(fā)的全面支持,直觀的全新 GUI Builder Matisse,經(jīng)過重新設計的對 CVS 的新支持,對 Sun Application Server 8.2、Weblogic9 和 JBoss 4 的支持,以及很多的編輯器增強功能。同時集成了Java開發(fā)工具中應用廣泛的單元測試工具Junit,使得在NetBeans下進行單元測試變得簡單容易,提高了程序員進行單元測試的積極性。
可以使用 NetBeans IDE 創(chuàng)建以下類型的測試:
•空測試:沒有測試方法的測試框架,尚未指定要測試的任何類。
•現(xiàn)有類的測試:包含實際測試方法的類,這些方法鏡像了要測試的源的結(jié)構(gòu)。
•測試套件:匯集在一起的幾組測試類,允許對整個應用程序或項目進行測試。
可以使用以下方法生成并找到測試:在“項目”窗口中選擇任何類或包節(jié)點,然后從“工具”> "JUnit" 菜單中進行選擇。NetBeans 將單元測試表示為子樹,這些子樹反映了項目的 Java 包結(jié)構(gòu)。每個測試類都由它所測試的類的名稱后Test 單詞組成(如 MyClassTest.java)。
每個項目都有一個缺省的測試包,所有的測試文件都在測試包內(nèi)被組織。程序文件與測試文件被分割成兩個獨立的部分,在項目下分為一個SRC文件夾和一個TEST文件夾,互相不產(chǎn)生影響,測試完成后,只需要將SRC文件夾單獨移開,并不需要TEST文件夾的支持。包結(jié)構(gòu)如下圖:
3 被測試模塊的編寫
新建一個Java類庫的項目,項目名稱為:MoneyChange,新建包moneychange,在包中添加類Money.class。(為了閱讀方便,下面代碼中原來的注釋已經(jīng)被刪除)