版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
JUnit測試工具1.JUnit概述JUnit是開源的Java單元測試工具,由Erich
Gamma和Kent
Beck兩人共同開發(fā)完成。它可以和Java的開發(fā)環(huán)境很好的集成,例如在Eclipse、JDK等開發(fā)環(huán)境中都可以安裝JUnit框架。下載最新版本的JUnit可以訪問網(wǎng)站。1.JUnit概述JUnit的目標(biāo)簡化測試的編寫,這種簡化包括測試框架的學(xué)習(xí)和實(shí)際測試單元的編寫使測試單元保持持久性可以利用既有的測試來編寫相關(guān)的測試。2.JUnit的特點(diǎn)可以使測試代碼與產(chǎn)品代碼分開。更有利于測試代碼的管理和代碼的發(fā)布。提供了多種方式來顯示測試結(jié)果,而且可以擴(kuò)展。對(duì)不同性質(zhì)的被測對(duì)象,如Class、JSP、Servlet等,JUnit有不同的測試方法。3.為什么要使用JUnit以前,開發(fā)人員寫一個(gè)方法,如下代碼所示:public
double
abs(doublex){returnx>=0?x:-x;}3.為什么要使用JUnit如果要對(duì)Add類的add方法進(jìn)行測試,通常要在main里編寫相應(yīng)的測試方法,如下代碼所示:……publicstaticvoidmain(String
args[]){if(abs(-3)==3)){System.out.println(“TestOk”);}else{System.out.println(“TestFail”);}}……3.為什么要使用JUnit缺點(diǎn):業(yè)務(wù)代碼和測試代碼放在一起,對(duì)于復(fù)雜的業(yè)務(wù)邏輯,代碼量會(huì)非常龐大,而且測試代碼會(huì)顯得比較凌亂,而JUnit就能改變這樣的狀況,它提供了更好的方法來進(jìn)行單元測試。三種測試驅(qū)動(dòng)程序設(shè)計(jì)優(yōu)缺點(diǎn):設(shè)計(jì)方法優(yōu)點(diǎn)缺點(diǎn)調(diào)用Main方法所見即所得,快速得知測試后結(jié)果不利于后期測試代碼的維護(hù)嵌入靜態(tài)測試方法測試代碼調(diào)用方便,被測試類無需實(shí)例化就可以進(jìn)行測試不利于后期測試代碼的維護(hù)不利于測試代碼的復(fù)用交付后的程序必須逐個(gè)剔除測試代碼實(shí)現(xiàn)獨(dú)立測試類測試代碼可復(fù)用測試用例獨(dú)立于被測試類之外,利于測試代碼的維護(hù)經(jīng)過改進(jìn)開發(fā),可以一次性執(zhí)行多個(gè)測試用例需要評(píng)價(jià)被測試類的測試價(jià)值,生成新的測試類需要密切關(guān)注被測試類的變化3.搭建JUnit的開發(fā)環(huán)境1.下載JUnit從可以進(jìn)入到JUnit的首頁,下載junit-4.8.1.jar。2.配置環(huán)境變量設(shè)定classPath,classPath=***;D:\junit\junit.jar。Annotation含義@Testpublicvoidmethod()定義一個(gè)要測試的方法@Beforepublicvoidmethod()在每一個(gè)測試之前都會(huì)被執(zhí)行的方法,這個(gè)方法常常用來進(jìn)行一些測試環(huán)境的準(zhǔn)備,比喻說讀入輸入數(shù)據(jù),初始化類@Afterpublicvoidmethod()與@Before進(jìn)行對(duì)應(yīng),做一個(gè)清理工作@BeforeClasspublicvoidmethod()在所有的測試開始之前執(zhí)行,這個(gè)方法在類運(yùn)行的時(shí)候運(yùn)行,而且只會(huì)運(yùn)行一次,所以常常用來做一些所有的方法都要依賴到工作,比喻說,數(shù)據(jù)庫的鏈接。@AfterClasspublicvoidmethod()與@BeforeClass進(jìn)行對(duì)應(yīng),做一些類級(jí)別的清理工作@Test(expected=IllegalArgumentException.class)檢查測試方法是不是拋出了對(duì)應(yīng)的異常@Test(timeout=100)如果方法的執(zhí)行操作所耗費(fèi)的毫秒數(shù)>100MS,那么方法失敗。Failure和ErrorFailure指的是由于預(yù)期的結(jié)果與實(shí)際運(yùn)行的測試的結(jié)果不同而導(dǎo)致的,例如當(dāng)使用assertEquals()或其它方法斷言失敗時(shí),就會(huì)報(bào)出Failure。Error指的是編寫程序時(shí)沒有考慮到的問題。在執(zhí)行測試的斷言之前,程序就因?yàn)槟撤N類型的意外而停止,這個(gè)時(shí)候你要檢查被測試方法中是不是有欠缺考慮到地方。3.在Eclipse中使用Junit
編寫一個(gè)獲取一個(gè)數(shù)值的絕對(duì)值的方法,并對(duì)其進(jìn)行測試。1.編寫類文件com.neusoft.test.FirstEx2.編寫測試用例,,,,3.在Eclipse中使用Junit
setUp()是初始化測試環(huán)境;tearDown()用于清理資源,如釋放打開的文件等等。以test開頭的方法被認(rèn)為是測試方法,JUnit會(huì)依次執(zhí)行testXxx()方法。在testAbs()方法中,對(duì)abs()的測試分別選擇正數(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
綠色表示測試通過,只要有1個(gè)測試未通過,就會(huì)顯示紅色并列出未通過測試的方法。3.JUnit的使用方法
第一步:編寫測試類,使其繼承TestCase;第二步:編寫測試方法,使用testXxx的方式來命名測試方法;第三步:編寫斷言。如果測試方法有公用的變量等需要初始化和銷毀,則可以使用setUp、tearDown方法。JUnitFrameworkJUnit核心TestCase(測試用例):由開發(fā)者編寫,擴(kuò)展了JUnit的TestCase類,以testXxx方法的形式包含一個(gè)或多個(gè)測試.TestSuite(測試集合):一組TestCase的集合,把多個(gè)相關(guān)測試歸入一組的便捷方式。TestRunner(測試運(yùn)行器):執(zhí)行testsuite的程序.這三個(gè)類是JUnit框架的骨干。JUnit核心Test:運(yùn)行測試并把結(jié)果傳遞給TestResult。Assert:當(dāng)條件成立時(shí)assert方法保持沉默,但若條件不成立就拋出異常。TestResult:測試結(jié)果的描述與記錄TestListener:測試過程中的事件監(jiān)聽者前三個(gè)類和后4個(gè)類緊密配合,形成JUnit框架的核心。JUnit斷言 在程序中特定部位插入某些用以判斷變量特性的語句,使得程序執(zhí)行中這些語句得以證實(shí),從而使程序的運(yùn)行特性得到證實(shí)。我們把插入的這些語句稱為斷言。
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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《索具套環(huán)》規(guī)范
- 安全專業(yè)軟件相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 非離子型纖維素醚相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 兩家宅基地界線協(xié)議書
- 順行髓內(nèi)釘治療掌骨頸骨折
- 燈光培訓(xùn)資料
- 智慧醫(yī)院綜合管理解決方案(醫(yī)院綜合管控指揮)
- 食品中毒應(yīng)急預(yù)案
- 老年病科急救演練
- 藥店藥師的角色與職責(zé)
- 《江西省普通小學(xué)基本辦學(xué)條件標(biāo)準(zhǔn)試行》
- 稀土熒光探針檢測多巴胺及類似物.
- 20X20作文稿紙模板(免費(fèi)下載)
- 高中畢業(yè)生登記表(模板)-
- 《收心教育主題班會(huì)》PPT課件.ppt
- DNA 甲基化ppt課件
- 當(dāng)前電力物資采購產(chǎn)品質(zhì)量風(fēng)險(xiǎn)問題及管理策略探討
- 合作建房協(xié)議書【范本】(通用版)(精編版)
- 輸液反應(yīng)診斷及處理
- 基于PLC控制西門子S7200旋轉(zhuǎn)式濾水器控制系統(tǒng)設(shè)計(jì)
- 有關(guān)護(hù)理糾紛的案例
評(píng)論
0/150
提交評(píng)論