Unit是一種可重復編寫Java棵序測試的框架,豐要用于單元測試。
unit的目標
· 創(chuàng)建一個通用的測試框架,將測試代碼封裝入對象中,從而使開發(fā)者同步設計并配置自己的單元測試。
· 讓測試代碼不會因為時間推移而變化,具有保值性,使測試代碼標準化。從而保證編寫原始測試代碼之外的人也可以執(zhí)行和維護測試,這樣,多人的測試用例聯(lián)合和執(zhí)行成為可能而不會導致混亂。
· 在新創(chuàng)建的測試用例和舊的測試用例之間起到杠桿作用,Junit框架能夠為重復測 試提供便利。將測試代碼從系統(tǒng)代碼中剝離開,二者可同步發(fā)展。JLhit的框架成員邏輯分析被測試的對象(類、多個類、子系統(tǒng))。對測試目標進行測試的方法與過程集合,可將其稱為測試用例(Testcase)測試事務的集合,可容納多個測試用例,將其稱作測試組件(Testsujte)。測試結果(TenResult)的描述與記錄。
· 每一個測試方法所發(fā)生的與預期不一致狀況的描述,稱其測試失敗(TestFailure)
· JUnitFramework中的出錯異常(AssertionFailedError)。JUnk框架功能以及原理描述
· 測試接口與測試用例(TestCase)、測試組件(TestSuite)形成了復臺(Coinposite)結構,Run(TestResult)則是Composite Method。Test為Component,派生出的 TestCase為Leaf,是測試的執(zhí)行元素:TestSuite為Composite,可通過addTest(Test)來容納Test組合(TestCase or TestSuite)形成測試包。
·TestCase可在框架中視為測試單元的運行實體。用戶可以通過它派生自定義的 試過程與方式(單元),利用CommandPattern與CompositePattern使其形成可組合裝配的可擴展測試批處理。TestCase本身的運作操作為mn(TestResuIt),其中 分別執(zhí)行setUp(),runTestO,tearDown0來架構測試過程。Template Method Pattem使用戶無須了解執(zhí)行框架的過程細節(jié).而只需熏定義特性化的測試預處理、測試單元過程以及測試完畢,測試三個TemplateMethod能使測試正確工作。
· 用戶層可通過Java的匿名內部類(anonymous inner classes)來集成化重載runTest(1形成特性測試類,脅it 3 0版本以后則支持利用Java的Class屬性來動態(tài)框架后臺生成這些特性測試單元類,用戶只需在TestCase派生類的test)(xxn即可,在Suite中使用return newTestSuite(MyTestCase class)后,該TestSuite包含了所有testXXX為測試過程的TestCase類對象集合。
· Assert類包含了assertEqual()、assertSame()、assertTrue()等靜態(tài)工具方法 (statictoolsmethods),為使用戶對系統(tǒng)所了解的類型盡可能少,JUnit框架將Assert作為了TestCase的超類,TestCase同時繼承了Assert的實現(xiàn)與Test接口(classAdepterpattern)。用戶可在TestCase中直接調用這些assertXXX(..)等靜態(tài)工具。