您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
使用Grester簡(jiǎn)化Java應(yīng)用程序的JUnit測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/22 14:37:43 ] 推薦標(biāo)簽:

Jester 由 Ivan Moore 編寫,它是測(cè)試由程序員和開發(fā)人員編寫的單元測(cè)試的工具。該工具基于這樣一個(gè)假設(shè):代碼中的很多區(qū)域包含了條件語(yǔ)句、循環(huán)語(yǔ)句和 case 語(yǔ)句,并且在一些代碼區(qū)域中,類的圈復(fù)雜度(cyclomatic complexity)由于存在很多執(zhí)行路徑而會(huì)突然增加。Jester 主要關(guān)注的是類似這樣的代碼。但是要運(yùn)行它,必須使用指向各個(gè)資源的格式良好的類路徑。

Grester 是針對(duì) Jester 的 Apache Maven 包裝器,它減輕了從項(xiàng)目依賴關(guān)系構(gòu)造 Java™ 類路徑之類的麻煩,這樣您可以使用 Jester 更輕松地測(cè)試執(zhí)行點(diǎn)。Grester 還增強(qiáng)了使用 Maven 的一些優(yōu)點(diǎn),Maven 是其基礎(chǔ)架構(gòu)的核心。在對(duì)沒有使用測(cè)試驅(qū)動(dòng)方式編寫的代碼進(jìn)行額外檢查時(shí),Jester 尤為有用。此類代碼可以是舊式應(yīng)用程序中的遺留代碼,甚至還可以是近編寫的代碼,這些代碼的開發(fā)人員認(rèn)為使用 Agile 的測(cè)試驅(qū)動(dòng)方法指導(dǎo)構(gòu)建高質(zhì)量代碼來(lái)說(shuō)難度較大。

實(shí)際上,您可以使用 Grester 來(lái)突破使用非測(cè)試驅(qū)動(dòng)方式編寫代碼的限制。根據(jù)我的經(jīng)驗(yàn),范圍蔓延(scope creep)和可能錯(cuò)失或繞過實(shí)際業(yè)務(wù)函數(shù)的代碼將會(huì)增加錯(cuò)誤數(shù)和惡意代碼 數(shù)量(快速處理 blob 反模式,即使在很小的代碼段中,都不必作為單個(gè)難于管理的模塊或模塊集)。

本文不會(huì)探討解釋 Jester 的輸出及精確說(shuō)明 Jester 如何工作的技術(shù)細(xì)節(jié)。要獲得這些信息,請(qǐng)參閱 參考資料 中由 Elliott Rusty Harold 撰寫的文章,或者訪問 Ivan Moore 的 Web 站點(diǎn)。本文旨在探討獲取并圍繞 Jester 使用 Maven 插件包裝器。

獲取 Grester

您可以通過兩個(gè)來(lái)源之一獲取 Grester,它們都列在 參考資料 中。運(yùn)行 Grester 所需的基礎(chǔ)設(shè)施非常少:您只需要使用 Maven 能構(gòu)建和使用 Grester。Grester 是用 Groovy 編寫的,Groovy 是一種動(dòng)態(tài)語(yǔ)言,它的語(yǔ)法類似于 Java 并且擁有 Python 和 Ruby 等語(yǔ)言的優(yōu)點(diǎn)。Grester 本質(zhì)上只是用于快速運(yùn)行 Jester 工具的另一個(gè) Maven 插件,因此 Grester 的真正威力來(lái)自 Jester。在本文中,結(jié)合使用了 Jester V1.37 與 Grester V0.3 alpha 發(fā)行版。

Jester 打破常規(guī):為什么呢?

如果所有項(xiàng)目 Java Archive (JAR) 依賴關(guān)系都位于一個(gè)位置,那么直接運(yùn)行 Jester 不可能比在 Java 類路徑條目中引用單個(gè)路徑更簡(jiǎn)單。但是,當(dāng)依賴關(guān)系散布到整個(gè)文件系統(tǒng)中時(shí),每次 Jester 運(yùn)行的配置問題會(huì)十分復(fù)雜而討厭,尤其是在各個(gè)依賴關(guān)系隨時(shí)間改變位置時(shí)。使用 Maven 將顯著簡(jiǎn)化此過程。

Jester 運(yùn)行在 Maven 項(xiàng)目構(gòu)建配置以外的每個(gè)實(shí)例中。那么,Grester 的特別之處在哪里?答案在于 Maven 組織其依賴關(guān)系的方式。這種 “安排” 非常高效,Maven 不但嘗試把 Java(或 Groovy)JAR 和 Web 歸檔 (WAR) 的查找方式標(biāo)準(zhǔn)化,而且還嘗試把保存方式標(biāo)準(zhǔn)化。
Linux 和 UNIX 用戶注意
Grester 的文件大小非常小,并且在解壓縮后,您可以放心地刪除目前的壓縮歸檔。這里是在 Windows 計(jì)算機(jī)中使用 Cygwin 來(lái)說(shuō)明解壓縮它是多么簡(jiǎn)單 —— 甚至在模擬的 Linux 環(huán)境中也一樣。但是,不建議用早于 Grester 0.3 的版本在 Linux 或 UNIX 系統(tǒng)上試驗(yàn),因?yàn)殡m然 Windows alpha 版本非常穩(wěn)定,但是缺少一些操作系統(tǒng)功能。不過,在所有版本中,都使用 Jester V1.37。

安裝 Grester

獲取 TAR 壓縮資源(.tar 文件和 tar.gz 文件適用于 UNIX® 和 Linux®)或者 Microsoft® Windows® ZIP 文件后,請(qǐng)將其解壓縮。有很多種方法可以完成此操作:在這里,我使用 Windows 中的 Cygwin 實(shí)用程序。

圖 1. 用 Windows 中的 Cygwin 實(shí)用程序解壓縮 Grester

您還可以將 TAR 實(shí)用程序與 xzvf 選項(xiàng)結(jié)合使用來(lái)解壓縮 tar.gz 文件,或者與 xvf 選項(xiàng)結(jié)合使用來(lái)解壓縮普通 .tar 文件。圖 2 給出了該過程的示例。

圖 2. 用 TAR 實(shí)用程序解壓縮 Grester tar.gz 文件

終的目錄結(jié)構(gòu)應(yīng)當(dāng)類似于圖 3。

圖 3. 在 Windows 中解壓縮的 Grester

配置、構(gòu)建和安裝 Grester

此時(shí),您已經(jīng)準(zhǔn)備好讓 Maven 知道可以從哪個(gè)外部系統(tǒng)庫(kù)獲得相關(guān) Grester Groovy 依賴關(guān)系,從而在本地把 Grester 編譯和安裝成 Maven 插件。您可以通過把兩個(gè)遠(yuǎn)程系統(tǒng)庫(kù)添加到 $MAVEN_HOME/conf/settings.xml 文件中來(lái)完成此操作,如下所示:

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