資源描述:
《junit測(cè)試工具簡(jiǎn)介》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第8章JUnit測(cè)試工具簡(jiǎn)介西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JUnit概述1使用JUnit編寫(xiě)測(cè)試2測(cè)試的內(nèi)容3主要內(nèi)容西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.1JUnit概述JUnit是一個(gè)開(kāi)源的java測(cè)試框架,它是Xuint測(cè)試體系架構(gòu)的一種實(shí)現(xiàn)。JUnit最初由ErichGamma和KentBeck所開(kāi)發(fā)。在JUnit單元測(cè)試框架的設(shè)計(jì)時(shí),設(shè)定了三個(gè)總體目標(biāo),第一個(gè)是簡(jiǎn)化測(cè)試的編寫(xiě),這種簡(jiǎn)化包括測(cè)試框架的學(xué)習(xí)和實(shí)際測(cè)試單元的編寫(xiě);第二個(gè)是使測(cè)試單元保持持久性;第三個(gè)則是可以利用既有的測(cè)試來(lái)編寫(xiě)相關(guān)的測(cè)試。西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試1、構(gòu)建單元測(cè)試測(cè)試代碼必須要做的
2、事情:●準(zhǔn)備測(cè)試所需要的各種條件(創(chuàng)建所有必須的對(duì)象,分配必要的資源等)●調(diào)用要測(cè)試的方法●驗(yàn)證被測(cè)試方法的行為和期望是否一致●完成后清理各種資源(InternalOnly)(Delivered)西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試1、構(gòu)建單元測(cè)試測(cè)試代碼用一般的方式編寫(xiě)和編譯當(dāng)執(zhí)行測(cè)試代碼的時(shí),從來(lái)不直接運(yùn)用產(chǎn)品代碼西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試2、JUnit的各種斷言JUnit提供了一些輔助函數(shù),用于幫助確定某個(gè)被測(cè)試函數(shù)是否工作正常。通常把所有這些函數(shù)統(tǒng)稱為斷言。每一個(gè)斷言(assert)方法都會(huì)記錄是否失敗了(斷言為假)或有錯(cuò)誤了(遇
3、到一個(gè)意料外的異常)的情況,并通過(guò)JUnit的一些類來(lái)報(bào)告這些結(jié)果當(dāng)一個(gè)失敗或者錯(cuò)誤出現(xiàn)的時(shí)候,當(dāng)前測(cè)試方法的執(zhí)行流程將會(huì)被中止,但是(位于同一個(gè)測(cè)試類中的)其它測(cè)試將會(huì)繼續(xù)運(yùn)行。西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試2、JUnit的各種斷言assertEqualsassertEquals([Stingmessage],expected,actual)相等性測(cè)試expected是期望值(通常都是硬編碼的),actual是被測(cè)試代碼實(shí)際產(chǎn)生的值,message是一個(gè)可選的消息,如果提供的話,將會(huì)在發(fā)生錯(cuò)誤時(shí)報(bào)告這個(gè)消息。如想用斷言來(lái)比較浮點(diǎn)數(shù)(在Java中是類型為flo
4、at或者double的數(shù)),則需指定一個(gè)額外的誤差參數(shù)。assertEquals([Stingmessage],expected,actual,tolerance)西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試2、JUnit的各種斷言assertNullassertNull([Stingmessage],java.lang.Objectobject)assertNotNull([Stingmessage],java.lang.Objectobject)驗(yàn)證一個(gè)給定的對(duì)象是否為null(或者為非null),如果答案為否,則將會(huì)失敗。Message參數(shù)是可選的。西南石油大學(xué)計(jì)算機(jī)
5、科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試2、JUnit的各種斷言assertSameassertSame([Stingmessage],expected,actual)驗(yàn)證expected參數(shù)和actual參數(shù)所引用的是否為同一個(gè)對(duì)象,如果不是將會(huì)失敗。Message參數(shù)是可選的assertNotSame([Stingmessage],expected,actual)驗(yàn)證expected參數(shù)和actual參數(shù)所引用的是否為不同的對(duì)象,如相同將會(huì)失敗。Message參數(shù)是可選的西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試2、JUnit的各種斷言assertTrueassertTr
6、ue([Stingmessage],Booleancondition)驗(yàn)證給定的二元條件是否為真,如果為假將會(huì)失敗。Message參數(shù)是可選的。assertFalse([Stingmessage],Booleancondition)驗(yàn)證給定的二元條件是否為假;如果不是的話(為真),該測(cè)試將會(huì)失敗,message參數(shù)是可選的。西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試2、JUnit的各種斷言FailFail([Stingmessage])將會(huì)使測(cè)試立即失敗,其中message參數(shù)是可選的。這種斷言通常被用于標(biāo)記某個(gè)不應(yīng)該被到達(dá)的分支西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUn
7、it編寫(xiě)測(cè)試2、JUnit的各種斷言一般而言,一個(gè)測(cè)試方法包含有多個(gè)斷言,因?yàn)樾枰?yàn)證該方法的多個(gè)方面以及內(nèi)在的多種聯(lián)系。當(dāng)一個(gè)斷言失敗的時(shí)候,該測(cè)試方法將會(huì)被中止,從而導(dǎo)致該方法中余下的斷言這次就無(wú)法執(zhí)行了,此時(shí)只能是在繼續(xù)測(cè)試之前先修復(fù)這個(gè)失敗的測(cè)試。依此類推,不斷地修復(fù)一個(gè)又一個(gè)的測(cè)試,沿著這條路徑慢慢前進(jìn)。西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院8.2使用JUnit編寫(xiě)測(cè)試3、JUnit框架importjunint.framework.*;publicclass