文章通過學習《阿里巴巴Java開發手冊》整理
1.好的單元測試必須遵守AIR原則
好的單元測試宏觀上來說,具有自動化、獨立性、可重複執行的特點。
A: Automatic (自動化)
I:Independent (獨立性)
R:Repeatable(可重複)
2.單元測試應該是全自動執行的,並且非交互式的
單元測試中不準使用System.out來進行人肉驗證,必須使用assert來驗證、
3.保持單元測試的獨立性
為了保證單元測試穩定可靠且便於維護,單元測試用例之間決不能互相調用,也不能依賴執行的先後次序
4.單元測試是可以重複執行的,不能受到外界環境的影響。
單元測試通常會被放到持續集成中,每次有代碼check in時單元測試都會被執行。如果單元測試對外部環境(網絡、服務、中間件等)有依賴,容易導致持續集成機制不可用。
5.核心業務、核心應用、核心模塊的增量代碼確保單元測試通過
6.單元測試代碼目錄
單元測試代碼必須寫在如下工程目錄:src/test/java,不允許寫在業務代碼目錄下。
說明:源碼構建時會跳過此目錄,而單元測試框架默認是掃描此目錄。
7.單元測試基本目標
單元測試的基本目標:語句覆蓋率達到70%,核心模塊的語句覆蓋率和分支覆蓋率都要達到100%
在工程規約的應用分層中提到的DAO層,Manager層,可重用度高的Service,都應該進行單元測試。
8.編寫單元測試代碼遵循的原則
遵守BCDE原則,以保證被測試模塊的交付質量。
B:Border,邊界值測試,包括循環邊界、特殊取值、特殊時間點、數據順序等
C:Correct,正確的輸入,並得到預期的結果
D:Design,與設計文檔相結合,來編寫單元測試
E:Error,強制錯誤信息輸入(如:非法數據、異常流程、非業務允許輸入等),並得到預期的結果
9.數據庫相關的查詢、更新、刪除等操作
不能假設數據庫里的數據是存在的,或者直接操作數據庫把數據插入進去,請使用程序插入或者導入數據的方式來準備數據。
10.和數據庫相關的單元測試
和數據庫相關的單元測試,可以設定自動回滾機制,不給數據庫造成臟數據 。或者對單元測試產生的數據有明確的前後綴標識
11.對於不可測的代碼
建議做必要的重構,使代碼變得可測,避免為了dadao測試要求bu而書寫不規範的測試代碼。
12.設計評審階段
在設計評審階段,開發人員需要和測試人員一起確定單元測試範圍,單元測試最好覆蓋所有測試用例(UC)
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/225327.html
微信掃一掃
支付寶掃一掃