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