天天看點

單元測試

三豐 soft張三豐

單元測試

單元測試(unit testing),是指對軟體中的最小可測試單元進行檢查和驗證。對于單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如c語言中單元指一個函數,java裡單元指一個類,圖形化的軟體中可以指一個視窗或一個菜單等。總的來說,單元就是人為規定的最小的被測功能子產品。單元測試是在軟體開發過程中要進行的最低級别的測試活動,軟體的獨立單元将在與程式的其他部分相隔離的情況下進行測試。

在一種傳統的結構化程式設計語言中,比如c,要進行測試的單元一般是函數或子過程。在像c++這樣的面向對象的語言中, 要進行測試的基本單元是類。對ada語言來說,開發人員可以選擇是在獨立的過程和函數,還是在ada包的級别上進行單元測試。單元測試的原則同樣被擴充到第四代語言(4gl)的開發中,在這裡基本單元被典型地劃分為一個菜單或顯示界面。

經常與單元測試聯系起來的另外一些開發活動包括代碼走讀(code review),靜态分析(static analysis)和動态分析(dynamic analysis)。靜态分析就是對軟體的源代碼進行研讀,查找錯誤或收集一些度量資料,并不需要對代碼進行編譯和執行。動态分析就是通過觀察軟體運作時的動作,來提供執行跟蹤,時間分析,以及測試覆寫度方面的資訊。

hamcrest是用于java的單元測試的架構,它使用matcher比對器來進行斷言。在spring-boot-starter中內建了hamcrest,無需而外引入。

1.is

使用is比對器使得程式更加易懂

用于簡單資料類型的判斷

2.not

和is使用方式一樣,隻是含義相反。

使用not比對器使得程式更加易懂

3.containsstring

是否包含子串

4.以為某個字段開頭/結尾

5.判斷兩個對象是否為同一個實體

6.類似or的效果

7.類似and的效果

1.比對空串

2.比對字元串相等

1.檢查某個元素是否在集合中

2.檢查所有元素

3.為空檢查

集合為空檢查

數組為空檢查

map為空檢查

iterable為空檢查

4.檢查數目

檢查集合數目

5.檢查iterable數目

5.檢查每項的條件

定義一個city的bean

1.測試是否存在某個屬性

2.判斷兩個對象property值是否一樣

junit 5 對 java 運作環境的最低要求是 java 8。

intellij idea支援自2016.2之後支援junit5。

推薦使用idea 2017.3或之後的版本。

各idea版本和支援的junit5版本對照:

單元測試

junit5常用注解:

單元測試

junit 5 提供了三種不同的方式來執行測試用例,分别是通過 gradle 插件、maven 插件和指令行來運作。