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