您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
單元測試?yán)鱆Unit
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/3/29 14:59:08 ] 推薦標(biāo)簽:

   本文主要介紹了如何使用 JUnit 4 提供的各種功能開展有效的單元測試,并通過一個實(shí)例演示了如何使用 Ant 執(zhí)行自動化的單元測試。本文假設(shè)讀者對 Eclipse 下進(jìn)行 Java 開發(fā)有一定的經(jīng)驗(yàn),并了解 Java 5 中的注解(annotation)特性。
引言

    毋庸置疑,程序員要對自己編寫的代碼負(fù)責(zé),您不僅要保證它能通過編譯,正常地運(yùn)行,而且要滿足需求和設(shè)計(jì)預(yù)期的效果。單元測試正是驗(yàn)證代碼行為是否滿足預(yù)期的有效手段之一。但不可否認(rèn),做測試是件很枯燥無趣的事情,而一遍又一遍的測試則更是讓人生畏的工作。幸運(yùn)的是,單元測試工具 JUnit 使這一切變得簡單藝術(shù)起來。

    JUnit 是 Java 社區(qū)中知名度高的單元測試工具。它誕生于 1997 年,由 Erich Gamma 和 Kent Beck 共同開發(fā)完成。其中 Erich Gamma 是經(jīng)典著作《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》一書的作者之一,并在 Eclipse 中有很大的貢獻(xiàn);Kent Beck 則是一位極限編程(XP)方面的專家和先驅(qū)。

    麻雀雖小,五臟俱全。JUnit 設(shè)計(jì)的非常小巧,但是功能卻非常強(qiáng)大。Martin Fowler 如此評價 JUnit:在軟件開發(fā)領(lǐng)域,從來沒有如此少的代碼起到了如此重要的作用。它大大簡化了開發(fā)人員執(zhí)行單元測試的難度,特別是 JUnit 4 使用 Java 5 中的注解(annotation)使測試變得更加簡單。

JUnit 4 初體驗(yàn)

    在開始體驗(yàn) JUnit 4 之前,我們需要以下軟件的支持:

    Eclipse:為流行的 IDE,它全面集成了 JUnit,并從版本 3.2 開始支持 JUnit 4。當(dāng)然 JUnit 并不依賴于任何 IDE。您可以從http://www.eclipse.org/上下載新的 Eclipse 版本。
    Ant:基于 Java 的開源構(gòu)建工具,您可以在http://ant.apache.org/上得到新的版本和豐富的文檔。Eclipse 中已經(jīng)集成了 Ant,但是在撰寫本文時,Eclipse 使用的 Ant 版本較低(必需 1.7 或者以上版本),不能很好的支持 JUnit 4。
    JUnit:它的官方網(wǎng)站是http://www.junit.org/。您可以從上面獲取關(guān)于 JUnit 的新消息。如果您和本文一樣在 Eclipse 中使用 JUnit,不必再下載了。
    首先為我們的體驗(yàn)新建一個 Java 工程 —— coolJUnit。現(xiàn)在需要做的是,打開項(xiàng)目 coolJUnit 的屬性頁 -> 選擇“Java Build Path”子選項(xiàng) -> 點(diǎn)選“Add Library…”按鈕 -> 在彈出的“Add Library”對話框中選擇 JUnit(圖1),并在下一頁中選擇版本 4.1 后點(diǎn)擊“Finish”按鈕。這樣便把 JUnit 引入到當(dāng)前項(xiàng)目庫中了。

圖1 為項(xiàng)目添加 JUnit 庫

  請注意 JDK 的版本

    JUnit 4.1 是基于 Java 5 的升級版本,它使用了 Tiger 中的很多新特性來簡化原有的使用方式。正因?yàn)槿绱,它并不能直接運(yùn)行在 JDK1.4.x 版本上。如果您需要在 JDK1.4.x 版本使用 JUnit 的話,請使用 3.8.1 版本。

    可以開始編寫單元測試了嗎?等等……,您打算把單元測試代碼放在什么地方呢?把它和被測試代碼混在一起,這顯然會照成混亂,因?yàn)閱卧獪y試代碼是不會出現(xiàn)在終產(chǎn)品中的。建議您分別為單元測試代碼與被測試代碼創(chuàng)建單獨(dú)的目錄,并保證測試代碼和被測試代碼使用相同的包名。這樣既保證了代碼的分離,同時還保證了查找的方便。遵照這條原則,我們在項(xiàng)目 coolJUnit 根目錄下添加一個新目錄 testsrc,并把它加入到項(xiàng)目源代碼目錄中(加入方式見 圖2)。

圖2 修改項(xiàng)目源代碼目錄

    現(xiàn)在我們得到了一條 JUnit 的佳實(shí)踐:單元測試代碼和被測試代碼使用一樣的包,不同的目錄。

    一切準(zhǔn)備緒,一起開始體驗(yàn)如何使用 JUnit 進(jìn)行單元測試吧。下面的例子來自筆者的開發(fā)實(shí)踐:工具類 WordDealUtil 中的靜態(tài)方法 wordFormat4DB 是專用于處理 Java 對象名稱向數(shù)據(jù)庫表名轉(zhuǎn)換的方法(您可以在代碼注釋中可以得到更多詳細(xì)的內(nèi)容)。下面是第一次編碼完成后大致情形:

上一頁123456下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd