版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件測試技術(shù)基礎(chǔ)單元測試工具JUnit1/42Review軟件測試目標(biāo)軟件測試過程單元測試流程2/42教學(xué)目標(biāo)教學(xué)目標(biāo)了解JUnit測試流程了解JUnit測試環(huán)境了解JUnit測試中慣用方法技能要求學(xué)會(huì)用JUnit對java程序進(jìn)行單元測試單元測試工具JUnit了解JUnit基本知識了解JUnit安裝了解JUnit測試框架3/42JUnit使用JUnit安裝JUnit概述單元測試工具JUnit4/42知識分析重點(diǎn):
JUnit測試異常斷言使用JUnit基本概念JUnit慣用類(TestCase、Assert、TestSuite)使用難點(diǎn):
5/42TheTestingProblemsprogrammersShouldwrite
fewDoWhy?IamsobusyItisdifficult
6/42TheTestingProblemsProgrammersneedsuchkindoftool:
“Writingafewlinesofcode,thenatestthatshouldrun,orevenbetter,towriteatestthatwon'trun,thenwritethecodethatwillmakeitrun.”JUnitisthatkindoftool!7/42一個(gè)簡單例子intadd(inta,intb){ returna+b;}
功效?JUnit概述8/42publicclassFirstTestExample{intadd(inta,intb){ returna+b;} publicstaticvoidmain(String[]args){ FirstTestExamplefta=newFirstTestExample();
System.out.println("Addvalueis:"+fta.add(2,3));
}}Java測試代碼JUnit概述9/42importjunit.framework.TestCase;publicclassFirstTestExampleTestextendsTestCase{ publicvoidtestAdd(){assertEquals(3,newFirstTestExample().add(2,3));
}}JUnit概述JUnit測試代碼10/42由ErichGamma和KentBeck編寫測試框架開放源碼軟件,在下載一個(gè)白盒測試法,所以是由開發(fā)人員進(jìn)行回歸測試工具JUnit概述11/42支持語言Smalltalk,Java,C++,Perl等支持IDEJBuilder,VisualAge,Eclipse等JUnit自定義包、類框架結(jié)構(gòu)和接口,能夠參閱下載文件中javadoc目錄內(nèi)容。JUnit概述12/42JUnit適適用于Java開發(fā)人員在單元測試階段,進(jìn)行單個(gè)方法實(shí)現(xiàn)功效或者類本身測試JUnit需要測試者自己編程,編寫測試代碼必須滿足JUnit框架要求普通認(rèn)為,JUnit最適適用于XP(ExtremeProgramming:極限編程)開發(fā)中。JUnit概述13/42能夠使測試代碼與產(chǎn)品代碼分開。針對某一個(gè)類測試代碼經(jīng)過較少改動(dòng)便能夠應(yīng)用于另一個(gè)類測試。易于集成到測試人員構(gòu)建過程中,JUnit和Ant結(jié)合能夠?qū)嵤┰隽块_發(fā)。JUnit是公開源代碼,能夠進(jìn)行二次開發(fā)。能夠方便地對JUnit進(jìn)行擴(kuò)展。JUnit概述-優(yōu)勢優(yōu)勢14/42
使用斷言方法判斷期望值和實(shí)際值差異,返回Boolean值。
測試驅(qū)動(dòng)設(shè)備使用共同初始化變量或者實(shí)例。測試包結(jié)構(gòu)便于組織和集成運(yùn)行。
支持圖型交互模式和文本交互模式。
JUnit概述-特征特征15/42下載安裝程序:并解包,版本junit3.8.1勿將JUnit.jar和JDK安裝到同一個(gè)目錄,不然可能找不到被測試類
找到j(luò)unit.jar文件所在目錄將此目錄連同junit.jar文件添加進(jìn)系統(tǒng)變量CLASSPATH中寫進(jìn)CLASSPATH目錄(供參考)為:D:\junit\junit3.8.1\junit.jarJUnit安裝16/42JUnit安裝三種運(yùn)行測試方式:批處理文本方式17/42被測試代碼文件綠色顯示工作類工作無誤已測類數(shù)量測試耗時(shí)瀏覽可測文件退出測試按鈕測試結(jié)果匯總開始測試按鈕測試結(jié)果詳細(xì)描述分別顯示兩個(gè)夾頁swing界面測試JUnit安裝18/42awt界面測試JUnit安裝19/42一個(gè)簡單例子JUnit使用20/42一個(gè)簡單例子用JUNIT編寫測試代碼JUnit使用21/42TheFrameworkofJUnit22/42JUnit使用:TestCaseJUnit提供一個(gè)類,實(shí)現(xiàn)Test接口,繼承
junit.framework.TestCase幾乎我們編寫全部測試類都要繼承TestCase一個(gè)擴(kuò)展TestCase類(即測試類)會(huì)有多個(gè)testXXX()方法,一個(gè)testXXX()方法就是一個(gè)測試。23/42JUnit3.8中.testXXX()測試方法必須滿足下面幾個(gè)條件:<1>public<2>void<3>無方法參數(shù)<4>方法必須以test開頭.后面部分自定義。JUnit使用:TestCase24/42Assert超類所提供8個(gè)關(guān)鍵方法JUnit使用:Assert方法25/42課堂練習(xí)詳見資料視頻資料126/42課堂實(shí)踐自己練習(xí)類中減、乘、除測試方法建立和使用27/42一個(gè)簡單例子intDivide(inta,intb){ returna/b;}
除數(shù)為0?JUnit使用28/42期望會(huì)拋出異常處理方法:在將會(huì)拋出異常語句后斷言Assert.fail()。申明異常Throwableth,發(fā)生異常時(shí)將異常賦值給Throwable,再進(jìn)行斷言,可用到Assert以下方法:assertNotNull(th);assertEquals(期望異常消息,實(shí)際異常消息)。JUnit使用:Assert方法29/42
public
void
testDivide2(){ Throwabletx=null; try{ cal.divide(4,0); Assert.fail();
} catch(Exceptionex){ tx=ex; }
Assert.assertNotNull(tx);
Assert.assertEquals(Exception.class,tx.getClass());
Assert.assertEquals("除數(shù)不能為零!",tx.getMessage()); }}一個(gè)方法能夠有多個(gè)測試方法,輸入不一樣情況會(huì)有不一樣testcase出現(xiàn)tx是Exception類型一旦發(fā)生異常,則tx一定不為空期望該行代碼永遠(yuǎn)不會(huì)被執(zhí)行,斷言失敗,停頓執(zhí)行馬上失敗JUnit使用:Assert方法30/42例題講解231/42JUnit使用:FixtureFixture:對類進(jìn)行測試前準(zhǔn)備待測類測試環(huán)境。不一樣待測類有不一樣Fixture,但能夠應(yīng)用共同F(xiàn)ixture,略作修改即可。不能將配置Fixture代碼放入測試類結(jié)構(gòu)方法中。JUnitTestCase類提供setUp()和tearDown()方法,分別完成Fixture建立和拆除。32/42TestRunner是運(yùn)行測試程序類,運(yùn)行次序以下編譯待測類和測試類,生成字節(jié)碼在命令行輸入運(yùn)行TestRunner或者在main()方法內(nèi)運(yùn)行junit.textui.TestRunner.run();測試成功,字符界面返回OK,圖形顯示條界面呈綠色,且沒有failures和errors提醒JUnit使用:TestRunner33/42
假如JUnit測試未成功,會(huì)區(qū)分failures和errors。Failures是一個(gè)期望被assert()方法檢驗(yàn)到失敗errors則是意外問題引發(fā)錯(cuò)誤,如ArrayIndexOutOfBoundsException34/42假如在沒有IDE情況下,能夠經(jīng)過使用TestRunner類進(jìn)行測試,如以下代碼所表示
publicstaticvoidmain(String[]args){ junit.awtui.TestRunner.run(CalculatorTest.class); }35/42和TestCase一樣,作為JUnit一個(gè)類實(shí)現(xiàn)Test接口對多個(gè)測試類同時(shí)進(jìn)行測試,同時(shí)實(shí)現(xiàn)suite()JUnit基本概念:TestSuite36/42將測試實(shí)例加到TestSuite,返回TestSuite對象,例子以下:publicstaticTestsuite(){
TestSuitesuite=newTestSuite();
suite.addTest(newtestCar("testGetWheels"));
suite.addTest(newtestCar("testGetSeats"));
returnsuite;}37/42JUnit使用1、源代碼與測試源碼最好分別放置不一樣源代碼文件夾,包名最好一致。2、測試類必須繼承junit.framework.TestCase,測試方法必須是publicvoidtest*(),*最好為被測試方法名,一個(gè)方法對應(yīng)最少一個(gè)測試用列。3、Assert.assertEquals(期望值,實(shí)際值)??芍苯邮褂胊ssertEquals,TestCase繼承了Assert。小結(jié)38/424、期望會(huì)拋出異常處理方法:
在將會(huì)拋出異常語句后斷言Assert.fail()。申明異常Throwableth,發(fā)生異常時(shí)將異常賦值給Throwable,再進(jìn)行斷言,可用到Assert以下方法:assertNotNull(th);assertEquals(期望異常消息,實(shí)際異常消息)。小結(jié)JUnit使用39/425、TestCasesetUp()方法會(huì)在一個(gè)測試類每個(gè)測試用列執(zhí)行之前執(zhí)行,通慣用于初始化資源。6、TestCase
tearDown()方法會(huì)在一個(gè)測試類每個(gè)測試用例執(zhí)行之后執(zhí)行,通慣用于銷毀資源。JUnit使用小結(jié)40/427、執(zhí)行測試類方法:junit.swingui.TestRunner.run(測試類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)技能培訓(xùn)體系優(yōu)化-深度研究
- 2025至2030年中國解酒含片數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國耐磨鑄鐵數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國熱敷墊數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國水箱支架數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國安全標(biāo)志燈數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國原木書架數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年中國高速尼龍拉鏈專用縫合機(jī)市場調(diào)查研究報(bào)告
- 2025年中國車載GPS定位報(bào)警防盜系統(tǒng)市場調(diào)查研究報(bào)告
- 2025年中國空氣清凈活氧機(jī)市場調(diào)查研究報(bào)告
- 二零二五隱名股東合作協(xié)議書及公司股權(quán)代持及回購協(xié)議
- 四川省成都市武侯區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》知識培訓(xùn)
- 初一到初三英語單詞表2182個(gè)帶音標(biāo)打印版
- 2024年秋季人教版七年級上冊生物全冊教學(xué)課件(2024年秋季新版教材)
- 環(huán)境衛(wèi)生學(xué)及消毒滅菌效果監(jiān)測
- 2023年11月英語二級筆譯真題及答案(筆譯實(shí)務(wù))
- 元明時(shí)期左江上思州黃姓土司問題研究
- 圍手術(shù)期應(yīng)急預(yù)案
- 中玻北方新材料有限責(zé)任公司太陽能光伏玻璃及l(fā)ow-e節(jié)能玻璃深加工項(xiàng)目申請立項(xiàng)環(huán)境影響評估報(bào)告書簡本
- 【橡膠工藝】-橡膠履帶規(guī)格
評論
0/150
提交評論