軟件測(cè)試技術(shù)項(xiàng)目訓(xùn)練-Junit_第1頁(yè)
軟件測(cè)試技術(shù)項(xiàng)目訓(xùn)練-Junit_第2頁(yè)
軟件測(cè)試技術(shù)項(xiàng)目訓(xùn)練-Junit_第3頁(yè)
軟件測(cè)試技術(shù)項(xiàng)目訓(xùn)練-Junit_第4頁(yè)
軟件測(cè)試技術(shù)項(xiàng)目訓(xùn)練-Junit_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JUnit測(cè)試工具1.JUnit概述JUnit是開源的Java單元測(cè)試工具,由Erich

Gamma和Kent

Beck兩人共同開發(fā)完成。它可以和Java的開發(fā)環(huán)境很好的集成,例如在Eclipse、JDK等開發(fā)環(huán)境中都可以安裝JUnit框架。下載最新版本的JUnit可以訪問(wèn)網(wǎng)站。1.JUnit概述JUnit的目標(biāo)簡(jiǎn)化測(cè)試的編寫,這種簡(jiǎn)化包括測(cè)試框架的學(xué)習(xí)和實(shí)際測(cè)試單元的編寫使測(cè)試單元保持持久性可以利用既有的測(cè)試來(lái)編寫相關(guān)的測(cè)試。2.JUnit的特點(diǎn)可以使測(cè)試代碼與產(chǎn)品代碼分開。更有利于測(cè)試代碼的管理和代碼的發(fā)布。提供了多種方式來(lái)顯示測(cè)試結(jié)果,而且可以擴(kuò)展。對(duì)不同性質(zhì)的被測(cè)對(duì)象,如Class、JSP、Servlet等,JUnit有不同的測(cè)試方法。3.為什么要使用JUnit以前,開發(fā)人員寫一個(gè)方法,如下代碼所示:public

double

abs(doublex){returnx>=0?x:-x;}3.為什么要使用JUnit如果要對(duì)Add類的add方法進(jìn)行測(cè)試,通常要在main里編寫相應(yīng)的測(cè)試方法,如下代碼所示:……publicstaticvoidmain(String

args[]){if(abs(-3)==3)){System.out.println(“TestOk”);}else{System.out.println(“TestFail”);}}……3.為什么要使用JUnit缺點(diǎn):業(yè)務(wù)代碼和測(cè)試代碼放在一起,對(duì)于復(fù)雜的業(yè)務(wù)邏輯,代碼量會(huì)非常龐大,而且測(cè)試代碼會(huì)顯得比較凌亂,而JUnit就能改變這樣的狀況,它提供了更好的方法來(lái)進(jìn)行單元測(cè)試。三種測(cè)試驅(qū)動(dòng)程序設(shè)計(jì)優(yōu)缺點(diǎn):設(shè)計(jì)方法優(yōu)點(diǎn)缺點(diǎn)調(diào)用Main方法所見即所得,快速得知測(cè)試后結(jié)果不利于后期測(cè)試代碼的維護(hù)嵌入靜態(tài)測(cè)試方法測(cè)試代碼調(diào)用方便,被測(cè)試類無(wú)需實(shí)例化就可以進(jìn)行測(cè)試不利于后期測(cè)試代碼的維護(hù)不利于測(cè)試代碼的復(fù)用交付后的程序必須逐個(gè)剔除測(cè)試代碼實(shí)現(xiàn)獨(dú)立測(cè)試類測(cè)試代碼可復(fù)用測(cè)試用例獨(dú)立于被測(cè)試類之外,利于測(cè)試代碼的維護(hù)經(jīng)過(guò)改進(jìn)開發(fā),可以一次性執(zhí)行多個(gè)測(cè)試用例需要評(píng)價(jià)被測(cè)試類的測(cè)試價(jià)值,生成新的測(cè)試類需要密切關(guān)注被測(cè)試類的變化3.搭建JUnit的開發(fā)環(huán)境1.下載JUnit從可以進(jìn)入到JUnit的首頁(yè),下載junit-4.8.1.jar。2.配置環(huán)境變量設(shè)定classPath,classPath=***;D:\junit\junit.jar。Annotation含義@Testpublicvoidmethod()定義一個(gè)要測(cè)試的方法@Beforepublicvoidmethod()在每一個(gè)測(cè)試之前都會(huì)被執(zhí)行的方法,這個(gè)方法常常用來(lái)進(jìn)行一些測(cè)試環(huán)境的準(zhǔn)備,比喻說(shuō)讀入輸入數(shù)據(jù),初始化類@Afterpublicvoidmethod()與@Before進(jìn)行對(duì)應(yīng),做一個(gè)清理工作@BeforeClasspublicvoidmethod()在所有的測(cè)試開始之前執(zhí)行,這個(gè)方法在類運(yùn)行的時(shí)候運(yùn)行,而且只會(huì)運(yùn)行一次,所以常常用來(lái)做一些所有的方法都要依賴到工作,比喻說(shuō),數(shù)據(jù)庫(kù)的鏈接。@AfterClasspublicvoidmethod()與@BeforeClass進(jìn)行對(duì)應(yīng),做一些類級(jí)別的清理工作@Test(expected=IllegalArgumentException.class)檢查測(cè)試方法是不是拋出了對(duì)應(yīng)的異常@Test(timeout=100)如果方法的執(zhí)行操作所耗費(fèi)的毫秒數(shù)>100MS,那么方法失敗。Failure和ErrorFailure指的是由于預(yù)期的結(jié)果與實(shí)際運(yùn)行的測(cè)試的結(jié)果不同而導(dǎo)致的,例如當(dāng)使用assertEquals()或其它方法斷言失敗時(shí),就會(huì)報(bào)出Failure。Error指的是編寫程序時(shí)沒(méi)有考慮到的問(wèn)題。在執(zhí)行測(cè)試的斷言之前,程序就因?yàn)槟撤N類型的意外而停止,這個(gè)時(shí)候你要檢查被測(cè)試方法中是不是有欠缺考慮到地方。3.在Eclipse中使用Junit

編寫一個(gè)獲取一個(gè)數(shù)值的絕對(duì)值的方法,并對(duì)其進(jìn)行測(cè)試。1.編寫類文件com.neusoft.test.FirstEx2.編寫測(cè)試用例,,,,3.在Eclipse中使用Junit

setUp()是初始化測(cè)試環(huán)境;tearDown()用于清理資源,如釋放打開的文件等等。以test開頭的方法被認(rèn)為是測(cè)試方法,JUnit會(huì)依次執(zhí)行testXxx()方法。在testAbs()方法中,對(duì)abs()的測(cè)試分別選擇正數(shù),負(fù)數(shù)和0,如果方法返回值與期待結(jié)果相同,則assertEquals不會(huì)產(chǎn)生異常。如果有多個(gè)testXxx方法,JUnit會(huì)創(chuàng)建多個(gè)XxxTest實(shí)例,每次運(yùn)行一個(gè)testXxx方法,setUp()和tearDown()會(huì)在testXxx前后被調(diào)用,因此,不要在一個(gè)testA()中依賴testB()。,3.在Eclipse中使用Junit

綠色表示測(cè)試通過(guò),只要有1個(gè)測(cè)試未通過(guò),就會(huì)顯示紅色并列出未通過(guò)測(cè)試的方法。3.JUnit的使用方法

第一步:編寫測(cè)試類,使其繼承TestCase;第二步:編寫測(cè)試方法,使用testXxx的方式來(lái)命名測(cè)試方法;第三步:編寫斷言。如果測(cè)試方法有公用的變量等需要初始化和銷毀,則可以使用setUp、tearDown方法。JUnitFrameworkJUnit核心TestCase(測(cè)試用例):由開發(fā)者編寫,擴(kuò)展了JUnit的TestCase類,以testXxx方法的形式包含一個(gè)或多個(gè)測(cè)試.TestSuite(測(cè)試集合):一組TestCase的集合,把多個(gè)相關(guān)測(cè)試歸入一組的便捷方式。TestRunner(測(cè)試運(yùn)行器):執(zhí)行testsuite的程序.這三個(gè)類是JUnit框架的骨干。JUnit核心Test:運(yùn)行測(cè)試并把結(jié)果傳遞給TestResult。Assert:當(dāng)條件成立時(shí)assert方法保持沉默,但若條件不成立就拋出異常。TestResult:測(cè)試結(jié)果的描述與記錄TestListener:測(cè)試過(guò)程中的事件監(jiān)聽者前三個(gè)類和后4個(gè)類緊密配合,形成JUnit框架的核心。JUnit斷言 在程序中特定部位插入某些用以判斷變量特性的語(yǔ)句,使得程序執(zhí)行中這些語(yǔ)句得以證實(shí),從而使程序的運(yùn)行特性得到證實(shí)。我們把插入的這些語(yǔ)句稱為斷言。

JUnit斷言JUnit主要有以下斷言:assertEquals(期望值,實(shí)際值),檢查兩個(gè)值是否相等。assertEquals(期望對(duì)象,實(shí)際對(duì)象),檢查兩個(gè)對(duì)象是否相等,利用對(duì)象的equals()方法進(jìn)行判斷。assertSame(期望對(duì)象,實(shí)際對(duì)象),檢查具有相同內(nèi)存地址的兩個(gè)對(duì)象是否相等,利用內(nèi)存地址進(jìn)行判斷,注意和上面assertEquals方法的區(qū)別。JUnit斷言assertNotSame(期望對(duì)象,實(shí)際對(duì)象),檢查兩個(gè)對(duì)象是否不相等。assertNu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論