JUnit是一個開發源代碼的Java測試框架,用在編寫和運行可重複的測試腳本之上。他是單元測試框架體系xUnit的一個實例。JUnit框架功能強大,目前已成爲Java單元測試的事實標準若是與Mock對象、HttpUnit、DBUnit等配合使用,基本上能知足平常測試要求。設計模式
JUnit特性:框架
1、可使測試代碼與產品代碼分開,這更有利於代碼的打包和測試代碼的管理。單元測試
2、針對某一個類的測試代碼,以較少的改動即可以應用另外一個類的測試,JUnit提供了一個編寫測試類的框架,使測試代碼的編寫更方便。測試
3、易於集成到程序中的構建過程當中,JUnit和Ant的結合還能夠實施增量開發。ui
4、JUnit的源代碼是公開的,故而能夠進行二次開發。設計
5、JUnit具備很強的擴展性,能夠方便的對JUnit進行擴展。對象
JUnit有七個包,核心包爲Junit.framwork和junit.runner。framework包負責整個測試對象的構建。runner負責測試驅動。繼承
JUnit四個重要類即其餘組成:接口
1、TestCase抽象類用來定義測試中的固定方法,TestCase是Test接口的抽象實現,因爲TestCase是一個抽象類,所以不能被實例化,只能被繼承。開發
2、TestSuite是由幾個TestCase或其餘的TestSuite構成的。能夠很容易構成一個樹形測試,每一個測試都由持有另一些測試的TestSuite來構成。
3、TestResult負責收集TestCase所執行的結果,將結果分類,分爲客戶可預測的錯誤和沒有預測的錯誤,他還將測試結果轉發到TestListener處理。
4、TestRunner是客戶對象調用的起點,它負責對整個測試過程進行跟蹤。它可以顯示測試結果,而且報告測試進度。
5、Assert類用來驗證條件是否成立,當條件成立時,assert方法保持沉默,若條件不成立時就拋出異常。
6、Test接口用來測試和收集測試結果,Test接口採用了Composite設計模式,它是單獨測試的用例,聚合的測試模式以及測試擴展的共同接口。
7、TestListener包含四個方法:addError(),addFailuer(),startTest(),endTest(),它是對測試結果的處理和對測試驅動過程的工做特徵進行提取。