使用Grester簡化Java應用程式的JUnit測試

來源:互聯網
上載者:User

Grester 是一種針對 Jester 的 Apache Maven 封裝器,用於檢查未採用測試驅動方式編寫的代碼

Jester 由 Ivan Moore 編寫,它是測試由程式員和開發人員編寫的單元測試的優秀工具。該工具基於這樣一個假設:代碼中的很多地區包含了條件陳述式、迴圈語句和 case 語句,並且在一些代碼地區中,類的循環複雜度(cyclomatic complexity)由於存在很多執行路徑而會突然增加。Jester 主要關注的就是類似這樣的代碼。但是要運行它,必須使用指向各個資源的格式良好的類路徑。

Grester 是針對 Jester 的 Apache Maven 封裝器,它減輕了從項目依賴關係構造 Java™ 類路徑之類的麻煩,這樣您可以使用 Jester 更輕鬆地測試執行點。Grester 還增強了使用 Maven 的一些優點,Maven 是其基礎架構的核心。在對沒有使用測試驅動方式編寫的代碼進行額外檢查時,Jester 尤為有用。此類代碼可以是舊式應用程式中的遺留代碼,甚至還可以是最近編寫的代碼,這些代碼的開發人員認為使用 Agile 的測試驅動方法指導構建高品質代碼來說難度較大。

實際上,您可以使用 Grester 來突破使用非測試驅動方式編寫代碼的限制。根據我的經驗,範圍蔓延(scope creep)和可能錯失或繞過實際業務函數的代碼將會增加錯誤數和惡意代碼 數量(快速處理 blob 反模式,即使在很小的程式碼片段中,都不必作為單個難於管理的模組或模組集)。

本文不會探討解釋 Jester 的輸出及精確說明 Jester 如何工作的技術細節。本文旨在探討擷取並圍繞 Jester 使用 Maven 外掛程式封裝器。

擷取 Grester

運行 Grester 所需的基礎設施非常少:您只需要使用 Maven 就能構建和使用 Grester。Grester 是用 Groovy 編寫的,Groovy 是一種動態語言,它的文法類似於 Java 並且擁有 Python 和 Ruby 等語言的優點。Grester 本質上只是用於快速運行 Jester 工具的另一個 Maven 外掛程式,因此 Grester 的真正威力來自 Jester。在本文中,結合使用了 Jester V1.37 與 Grester V0.3 alpha 發行版。

Jester 打破常規:為什麼呢?

如果所有項目 Java Archive (JAR) 依賴關係都位於一個位置,那麼直接運行 Jester 不可能比在 Java 類路徑條目中引用單個路徑更簡單。但是,當依賴關係散布到整個檔案系統中時,每次 Jester 啟動並執行配置問題會十分複雜而討厭,尤其是在各個依賴關係隨時間改變位置時。使用 Maven 將顯著簡化此過程。

Jester 運行在 Maven 項目構建配置以外的每個執行個體中。那麼,Grester 的特別之處在哪裡?答案在於 Maven 組織其依賴關係的方式。這種 “安排” 非常高效,Maven 不但嘗試把 Java(或 Groovy)JAR 和 Web 歸檔 (WAR) 的尋找方式標準化,而且還嘗試把儲存方式標準化。

Linux 和 UNIX 使用者注意
Grester 的檔案大小非常小,並且在解壓縮後,您可以放心地刪除目前的壓縮歸檔。這裡是在 Windows 電腦中使用 Cygwin 來說明解壓縮它是多麼簡單 —— 甚至在類比的 Linux 環境中也一樣。但是,不建議用早於 Grester 0.3 的版本在 Linux 或 UNIX 系統上實驗,因為雖然 Windows alpha 版本非常穩定,但是缺少一些作業系統功能。不過,在所有版本中,都使用 Jester V1.37。

如果您不熟悉 Maven,請使用系統庫 的概念。有一個位於 $USER_HOME\.m2\repository 的預設本地系統庫,還有一個在位於 $MAVEN_HOME/conf 的 pom.xml 或 settings.xml 檔案中配置的遠程系統庫。

安裝 Grester

擷取 TAR 壓縮資源(.tar 檔案和 tar.gz 檔案適用於 UNIX® 和 Linux®)或者 Microsoft® Windows® ZIP 檔案後,請將其解壓縮。有很多種方法可以完成此操作:在這裡,我使用 Windows 中的 Cygwin 公用程式。

圖 1. 用 Windows 中的 Cygwin 公用程式解壓縮 Grester

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.