JUnit測試市公開課一等獎(jiǎng)省賽課微課金獎(jiǎng)?wù)n件_第1頁
JUnit測試市公開課一等獎(jiǎng)省賽課微課金獎(jiǎng)?wù)n件_第2頁
JUnit測試市公開課一等獎(jiǎng)省賽課微課金獎(jiǎng)?wù)n件_第3頁
JUnit測試市公開課一等獎(jiǎng)省賽課微課金獎(jiǎng)?wù)n件_第4頁
JUnit測試市公開課一等獎(jiǎng)省賽課微課金獎(jiǎng)?wù)n件_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論