


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在Eclipse中使用JUnit4進(jìn)行單元測(cè)試(中級(jí)篇)我們繼續(xù)對(duì)初級(jí)篇中的例子進(jìn)行分析。初級(jí)篇中我們使用Eclipse自動(dòng)生成了一個(gè)測(cè)試框架,在這篇文章中,我們來仔細(xì)分析一下這個(gè)測(cè)試框架中的每一個(gè)細(xì)節(jié),知其然更要知其所以然,才能更加熟練地應(yīng)用JUnit4。一、包含必要地Package在測(cè)試類中用到了JUnit4框架,自然要把相應(yīng)地Package包含進(jìn)來。最主要地一個(gè)Package就是org.junit.*。把它包含進(jìn)來之后,絕大部分功能就有了。還有一句話也非常地重要“importstaticorg.junit.Assert.*;”,我們?cè)跍y(cè)試的時(shí)候使用的一系列assertEquals方法就來自這個(gè)包。大家注意一下,這是一個(gè)靜態(tài)包含(static),是JDK5中新增添的一個(gè)功能。也就是說,assertEquals是Assert類中的一系列的靜態(tài)方法,一般的使用方式是Assert.assertEquals(),但是使用了靜態(tài)包含后,前面的類名就可以省略了,使用起來更加的方便。二、測(cè)試類的聲明大家注意到,我們的測(cè)試類是一個(gè)獨(dú)立的類,沒有任何父類。測(cè)試類的名字也可以任意命名,沒有任何局限性。所以我們不能通過類的聲明來判斷它是不是一個(gè)測(cè)試類,它與普通類的區(qū)別在于它內(nèi)部的方法的聲明,我們接著會(huì)講到。三、創(chuàng)建一個(gè)待測(cè)試的對(duì)象。你要測(cè)試哪個(gè)類,那么你首先就要?jiǎng)?chuàng)建一個(gè)該類的對(duì)象。正如上一篇文章中的代碼:為了測(cè)試Calculator類,我們必須創(chuàng)建一個(gè)calculator對(duì)象。四、測(cè)試方法的聲明在測(cè)試類中,并不是每一個(gè)方法都是用于測(cè)試的,你必須使用“標(biāo)注”來明確表明哪些是測(cè)試方法?!皹?biāo)注”也是JDK5的一個(gè)新特性,用在此處非常恰當(dāng)。我們可以看到,在某些方法的前有@Before、@Test、@Ignore等字樣,這些就是標(biāo)注,以一個(gè)“@”作為開頭。這些標(biāo)注都是JUnit4自定義的,熟練掌握這些標(biāo)注的含義非常重要。五、編寫一個(gè)簡(jiǎn)單的測(cè)試方法。首先,你要在方法的前面使用@Test標(biāo)注,以表明這是一個(gè)測(cè)試方法。對(duì)于方法的聲明也有如下要求:名字可以隨便取,沒有任何限制,但是返回值必須為void,而且不能有任何參數(shù)。如果違反這些規(guī)定,會(huì)在運(yùn)行時(shí)拋出一個(gè)異常。至于方法內(nèi)該寫些什么,那就要看你需要測(cè)試些什么了。比如:@TestpublicvoidtestAdd(){calculator.add(2);calculator.add(3);assertEquals(5,calculator.getResult());}我們想測(cè)試一下“加法”功能時(shí)候正確,就在測(cè)試方法中調(diào)用幾次add函數(shù),初始值為0,先加2,再加3,我們期待的結(jié)果應(yīng)該是5。如果最終實(shí)際結(jié)果也是5,則說明add方法是正確的,反之說明它是錯(cuò)的。assertEquals(5,calculator.getResult());就是來判斷期待結(jié)果和實(shí)際結(jié)果是否相等,第一個(gè)參數(shù)填寫期待結(jié)果,第二個(gè)參數(shù)填寫實(shí)際結(jié)果,也就是通過計(jì)算得到的結(jié)果。這樣寫好之后,JUnit會(huì)自動(dòng)進(jìn)行測(cè)試并把測(cè)試結(jié)果反饋給用戶。六、忽略測(cè)試某些尚未完成的方法。如果你在寫程序前做了很好的規(guī)劃,那么哪些方法是什么功能都應(yīng)該實(shí)現(xiàn)定下來。因此,即使該方法尚未完成,他的具體功能也是確定的,這也就意味著你可以為他編寫測(cè)試用例。但是,如果你已經(jīng)把該方法的測(cè)試用例寫完,但該方法尚未完成,那么測(cè)試的時(shí)候一定是“失敗”。這種失敗和真正的失敗是有區(qū)別的,因此JUnit提供了一種方法來區(qū)別他們,那就是在這種測(cè)試函數(shù)的前面加上@Ignore標(biāo)注,這個(gè)標(biāo)注的含義就是“某些方法尚未完成,暫不參與此次測(cè)試”。這樣的話測(cè)試結(jié)果就會(huì)提示你有幾個(gè)測(cè)試被忽略,而不是失敗。一旦你完成了相應(yīng)函數(shù),只需要把@Ignore標(biāo)注刪去,就可以進(jìn)行正常的測(cè)試。七、Fixture(暫且翻譯為“固定代碼段”)Fixture的含義就是“在某些階段必然被調(diào)用的代碼”。比如我們上面的測(cè)試,由于只聲明了一個(gè)Calculator對(duì)象,他的初始值是0,但是測(cè)試完加法操作后,他的值就不是0了;接下來測(cè)試減法操作,就必然要考慮上次加法操作的結(jié)果。這絕對(duì)是一個(gè)很糟糕的設(shè)計(jì)!我們非常希望每一個(gè)測(cè)試都是獨(dú)立的,相互之間沒有任何耦合度。因此,我們就很有必要在執(zhí)行每一個(gè)測(cè)試之前,對(duì)Calculator對(duì)象進(jìn)行一個(gè)“復(fù)原”操作,以消除其他測(cè)試造成的影響。因此,“在任何一個(gè)測(cè)試執(zhí)行之前必須執(zhí)行的代碼”就是一個(gè)Fixture,我們用@Before來標(biāo)注它,如前面例子所示:@BeforepublicvoidsetUp()throwsException{calculator.clear();}這里不在需要@Test標(biāo)注,因?yàn)檫@不是一個(gè)test,而是一個(gè)Fixture。同理,如果“在任何測(cè)試執(zhí)行之后需要進(jìn)行的收尾工作”也是一個(gè)Fixture,使用
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 帶式焙燒機(jī)耐材施工方案
- 13 人物描寫一組 摔跤教學(xué)設(shè)計(jì)-2023-2024學(xué)年五年級(jí)下冊(cè)語文統(tǒng)編版
- 第5課 數(shù)據(jù)排序與篩選教學(xué)設(shè)計(jì) 2023-2024學(xué)年魯教版(2018)初中信息技術(shù)第4冊(cè)
- 2025至2031年中國細(xì)白型鋁銀漿行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國電風(fēng)扇開關(guān)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國汽車干洗劑行業(yè)投資前景及策略咨詢研究報(bào)告
- 公開課教學(xué)設(shè)計(jì)-光合作用的原理和應(yīng)用教學(xué)設(shè)計(jì)
- 2025至2030年中國麻數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國高低度聚乙袋數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國面板鎖數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 深度學(xué)習(xí)架構(gòu)創(chuàng)新-深度研究
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》真題及解析
- GB/T 12723-2024單位產(chǎn)品能源消耗限額編制通則
- DL∕T 5210.2-2018 電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程 第2部分:鍋爐機(jī)組
- 電梯每月電梯安全調(diào)度
- 2024年部編版五年級(jí)下冊(cè)語文第一單元綜合檢測(cè)試卷及答案
- (新教材)青島版六三制四年級(jí)下冊(cè)科學(xué)全冊(cè)教案(含教學(xué)計(jì)劃)
- 部編2023版道德與法治六年級(jí)下冊(cè)活動(dòng)園問題及答案
- 會(huì)展視覺識(shí)別設(shè)計(jì)PPT課件
- 同濟(jì)大學(xué)工程經(jīng)濟(jì)學(xué)講課)PPT精品文檔
- 運(yùn)動(dòng)營養(yǎng)學(xué)基礎(chǔ)
評(píng)論
0/150
提交評(píng)論