JUnit 5:下個世代的單元測試
Translated from “ JUnit 5: The New Generation of Unit Testing”, Java Magazine November/December 2016, page 13. Copyright Oracle Corporation.
JUnit 是 Java 界最廣泛使用的測試工具,反覆的調查顯示,它是如此的普遍,其他的測試工具大多建築在 JUnit 之上 (例如 Spock 和其他多數 behavior-driven 的開發框架),而不是複製其功能。JUnit 的速度、易用性與通用性讓它成為 Java 開發人員皆用的工具。
第五版是從根本上重寫與重新架構的 JUnit,這個版本的新功能整理於我們的 第一篇文章 (第 14 頁),文中對這個版本的改善提供詳盡的概觀; 第二篇文章 (第 20 頁) 說明如何將 JUnit 加到你的工具鏈中,特別是如何在同個測試中執行第四版與第五版的測試。
現在您看到這個版本帶來的好處,我們將帶您深入其架構 (第 25 頁),這篇文章正適合不想只待在單純驗證的程度,想從這新版本榨取更多能力的開發者,它同時是 JUnit 擴充點相當好的簡介,用來設計工具以驅動 JUnit 或與它互動。
但這是特刊,所以還有更豐富的內容,在第 36 頁,我們採訪 Kent Beck,JUnit 最初的開發者,也是極限編程 (extreme programming,構成現代軟體開發基礎的核心實踐) 的創始人之一,您將會見到,Beck 對測試的觀點,已從根深蒂固的測試優先開發進化到平衡測試的好處與其帶來的成本,他詳加解釋微妙的觀點,想必給 TDD 死硬派粉絲帶來躊躇。
最後,對於依賴單元測試作為關鍵程式碼防護網的開發人員,我們探討突變測試 (第 43 頁),繁重但自動化的測試,用來尋找單元測試的缺口,它使用單元測試並稍微調整它們,看測試條件改變或移除是否會造成測試失敗或拋出例外,這個找出重複的測試、不完整的測試以及那些其實不是您所預期的測試。願綠燈與您同在!
譯者的告白
三年前的舊文,最近慢慢搬到 Medium。本來按計畫應該是,閒談軟體架構系列的文章,但準備的材料還沒有全部消化完,正好 Java Magazine 這期特刊實在太有意思了,就透過翻譯的方式讓自己有時間能好好看看這些文章,也希望能對測試有興趣的人提供好的翻譯。