Java 項目自動生成單元測試插件推薦

一 單元測試的優缺點

優點:

1 幫助開發人員編寫代碼,提升質量,減少bug.比如說寫代碼是沒有考慮到某些case條件或者邊際條件,其中很重要的一個原因是我們思考不足,而編寫單元測試.特別是提前編寫單元測試可以減少這類問題的出現

2 提升反饋速度,減少重複工作,提高開發效率.通過單元測試驗證代碼比通過發佈應用以人工的方式來驗證代碼要快得多

3保證代碼修改不會破壞之前的代碼功能,當然要達到這點需要比較高的測試覆蓋率和編寫質量

4 讓代碼維護更容易,單元測試代碼像是規格說明書

5 有助於改進代碼質量和設計.雖然單元測試並不能直接提升代碼質量和設計,但它爲生產代碼提供了"安全網",讓開發人員可以勇敢安全的修改生產代碼,從而獲得更好的質量和設計

缺點:

1 單元測試的學習成本比較高,編寫單元測試設計的技術很多,如果只是單純的使用Junit或者TestNG這樣的基礎框架難以應對各種複雜的單元測試情況,勢必藉助很多三方框架和技術(EasyMock,Jmock,DBunit等),增加學習成本

2 增加了編寫和維護單元測試的工作量

3 推廣和運用單元測試需要比較大的投入.只有在每個開發人員都編寫的足夠的,質量好的單元測試代碼,我們才能享受到單元測試帶給我們的好處,在達到這種程度以前,需要不少的投入

爲解決此缺點此處討論下市面上針對java的自動生成單元測試工具

* 需要明確的是:自動生成單元測試工具並不能完全解決上述三個缺點,只能降低學習成本,減少編寫和維護單元測試的工作量,減少投入

                       自動生成單元測試工具生成的單元測試質量的高低將直接決定可以解決多少上述的三個問題.

       所以技術選型時,將自動生成單元測試工具生成的單元測試質量作爲第一考慮因素

 

二 自動生成單元測試工具 

1 EvoSuite

優點: 暫無

缺點: 社區支持少,配置麻煩.官網很簡陋.

 

2 TestMe

優點:快捷,簡單,會對需生成測試類的方法中調用的每一個都生成測試類

缺點: 需手動填充出入參和邏輯生成的只是一個

 

 

 

3 Squaretest

優點: 暫無

缺點: 30天免費,無社區版

 

 4  diffblue cover

優點: 功能強大,社區支持豐富

缺點: 官網不支持國內訪問,最新版本不支持JDK版本1.8.0_161以下的,idea2022.1版本以下的,商用版本收費昂貴,不支持mybatisPlus寫法

解決方法:FQ,升級idea和JDK,使用社區版,生成後手動處理一下

綜上考慮,最後選擇了diffblue cover作爲單元測試生成工具

三 使用diffbule的優缺點

優點:

1 可快速得到完整的單元測試代碼

缺點:

1 增加學習成本和短期的開發成本

2 新增代碼覆蓋率工作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章