Java開發程式碼規範之單元測試 阿新 • • 發佈:2019-01-04 文章通過學習《阿里巴巴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)