1. 程式人生 > >Java開發程式碼規範之單元測試

Java開發程式碼規範之單元測試

文章通過學習《阿里巴巴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)