1. 程式人生 > >Junit測試驅動開發

Junit測試驅動開發

JUnit 是Java語言事實上的標準單元測試庫。JUnit的易用性無疑是它受歡迎的主要原因。也許你會這樣想:它做的事情不多,僅僅是做一些測試然後報告結果,JUnit應該是很簡單的。


幾個基本概念

·測試:測試是選擇適當的測試用例執行被測試程式的過程,它的目的在於發現程式錯誤;
·除錯:診斷程式的錯誤性質、出錯位置並加以改正的過程。通常由編碼人員承擔;
·失敗:當一個程式不能執行時稱失敗。失敗是系統執行中出現的情況,失敗源於程式碼缺陷;
·錯誤:程式中的缺陷所產生的不正確的結果稱錯誤。程式中的人為缺陷可導致系統失敗(程式不能執行),也可能出現錯誤結果(程式可執行)。

“測試只能證明程式有錯(有缺陷),不能保證程式無錯”。因此,能夠發現程式缺陷的測試是成功的測試。當然,最理想的是進行程式正確性的完全證明,遺憾的是除非是極小的程式,至今還沒有實用的技術證明任一程式的正確性。為使程式有效執行,測試與除錯是唯一手段。

測試的根本目的就是為了發現儘可能多的缺陷.這裡的缺陷是一種泛稱,它可以指功能的錯誤,也可以指效能低下,易用性差等。因此,測試是一種“破壞性”行為(不破不立)。
·黑盒測試

黑盒測試也稱功能測試或資料驅動測試,它是在已知產品所應具有的功能,通過測試來檢測   每個功能是否都能正常使用,在測試時,把程式看作一個不能開啟的黑盆子,在完全不考慮程   序內部結構和內部特性的情況下,測試者在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收輸入數鋸而產生正確的輸出資訊,並且保持外部資訊(如資料庫或檔案)的完整性。

· 白盒測試

白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程式內部的結構測試程式,檢驗程式中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟體驗證。

review

什麼是Junit?


JUnit是一個Java語言的單元測試框架。
官網:http://junit.org/junit4/
在Eclipse中怎樣使用JUnit
第一種用法:

  1. 已有或新建一個工程。
    在這裡插入圖片描述

  2. 右擊工程,Build Path -> Configure Build Path…

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

  1. 新增完成。

第二種用法 :在lib中直接加入junit包。

[案例講解]

Junit註解
註解 描述

@Testpublic void method() 測試註釋指示該公共無效方法它所附著可以作為一個測試用例。
@Beforepublic void method() Before註釋表示,該方法必須在類中的每個測試之前執行,以便執行測試某些必要的先決條件。
@BeforeClasspublic static void method() BeforeClass註釋指出這是附著在靜態方法必須執行一次並在類的所有測試之前。發生這種情況時一般是測試計算共享配置方法(如連線到資料庫)。
@Afterpublic void method() After 註釋指示,該方法在執行每項測試後執行(如執行每一個測試後重置某些變數,刪除臨時變數等)
@AfterClasspublic static void method() 當需要執行所有的測試在JUnit測試用例類後執行,AfterClass註解可以使用以清理建立方法,(從資料庫如斷開連線)。注意:附有此批註(類似於BeforeClass)的方法必須定義為靜態。
@Ignorepublic static void method() 當想暫時禁用特定的測試執行可以使用忽略註釋。每個被註解為@Ignore的方法將不被執行。

Junit斷言
assertEquals() 如果比較的兩個物件是相等的,此方法將正常返回;否則失敗顯示在JUnit的視窗測試將中止。
assertSame() 和 assertNotSame() 方法測試兩個物件引用指向完全相同的物件。
assertNull() 和 assertNotNull() 方法測試一個變數是否為空或不為空(null)。
assertTrue() 和 assertFalse() 方法測試if條件或變數是true還是false。
assertArrayEquals() 將比較兩個陣列,如果它們相等,則該方法將繼續進行不會發出錯誤。否則失敗將顯示在JUnit視窗和中止測試。