![在軟件測試中了解JUnit和單元測試入門簡介_第1頁](http://file4.renrendoc.com/view/599f932fed7ecfe9493fc115887b578b/599f932fed7ecfe9493fc115887b578b1.gif)
![在軟件測試中了解JUnit和單元測試入門簡介_第2頁](http://file4.renrendoc.com/view/599f932fed7ecfe9493fc115887b578b/599f932fed7ecfe9493fc115887b578b2.gif)
![在軟件測試中了解JUnit和單元測試入門簡介_第3頁](http://file4.renrendoc.com/view/599f932fed7ecfe9493fc115887b578b/599f932fed7ecfe9493fc115887b578b3.gif)
![在軟件測試中了解JUnit和單元測試入門簡介_第4頁](http://file4.renrendoc.com/view/599f932fed7ecfe9493fc115887b578b/599f932fed7ecfe9493fc115887b578b4.gif)
![在軟件測試中了解JUnit和單元測試入門簡介_第5頁](http://file4.renrendoc.com/view/599f932fed7ecfe9493fc115887b578b/599f932fed7ecfe9493fc115887b578b5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第第頁在軟件測試中了解JUnit和單元測試入門簡介在軟件測試中了解JUnit和單元測試入門簡介
發(fā)表于:2023-07-30來源::點擊數(shù):標簽:junitJunitJUnitJUNIT軟件測試
在軟件測試中了解JUnit和單元測試入門簡介1、幾個相關的概念白盒測試——把測試對象看作一個打開的盒子,程序內(nèi)部的邏輯結構和其他信息對測試人員是公開的?;貧w測試——軟件或環(huán)境的修復或更正后的“再測試”,自動測試工具對這類測試
在軟件測試中了解JUnit和單元測試入門簡介1、幾個相關的概念白盒測試——把測試對象看作一個打開的盒子,程序內(nèi)部的邏輯結構和其他信息對測試人員是公開的?;貧w測試——軟件或環(huán)境的修復或更正后的“再測試”,自動測試工具對這類測試尤其有用。單元測試——是最小粒度的測試,以測試某個功能或代碼塊。一般由程序員來做,因為它需要知道內(nèi)部程序設計和編碼的細節(jié)。JUnit——是一個開發(fā)源代碼的Java測試框架,用于編寫和運行可重復的測試。他是用于單元測試框架體系xUnit的一個實例(用于java語言)。主要用于白盒測試,回歸測試。
2、單元測試概述2.1、單元測試的好處A、提高開發(fā)速度——測試是以自動化方式執(zhí)行的,提升了測試代碼的執(zhí)行效率。B、提高軟件代碼質量——它使用小版本發(fā)布至集成,便于實現(xiàn)人員除錯。同時引入重構概念,讓代碼更干凈和富有彈性。C、提升系統(tǒng)的可信賴度——它是回歸測試的一種。支持修復或更正后的“再測試”,可確保代碼的正確性。2.2、單元測試的針對對象A、面向過程的軟件開發(fā)針對過程。B、面向對象的軟件開發(fā)針對對象。C、可以做類測試,功能測試,接口測試(最常用于測試類中的方法)。2.3、單元測試工具和框架目前的最流行的單元測試工具是xUnit系列框架,常用的根據(jù)語言不同分為JUnit(java),CppUnit(C++),DUnit(Delphi),NUnit(.net),PhpUnit(Php)等等。該測試框架的第一個和最杰出的應用就是由ErichGamma(《設計模式》的)和KentBeck(XP(ExtremeProgramming)的創(chuàng)始人)提供的開放源代碼的JUnit。
3.Junit入門簡介3.1、JUnit的好處和JUnit單元測試編寫原則好處:A、可以使測試代碼與產(chǎn)品代碼分開。B、針對某一個類的測試代碼通過較少的改動便可以應用于另一個類的測試。C、易于集成到測試人員的構建過程中,JUnit和Ant的結合可以實施增量開發(fā)。D、JUnit是公開源代碼的,可以進行二次開發(fā)。C、可以方便地對JUnit進行擴展。編寫原則:A、是簡化測試的編寫,這種簡化包括測試框架的學習和實際測試單元的編寫。B、是使測試單元保持持久性。C、是可以利用既有的測試來編寫相關的測試。3.2、JUnit的特征
A、使用斷言方法判斷期望值和實際值差異,返回Boolean值。B、測試驅動設備使用共同的初始化變量或者實例。C、測試包結構便于組織和集成運行。D、支持圖型交互模式和文本交互模式。3.3、JUnit框架組成A、對測試目標進行測試的方法與過程集合,可稱為測試用例(TestCase)。B、測試用例的集合,可容納多個測試用例(TestCase),將其稱作測試包(TestSuite)。C、測試結果的描述與記錄。(TestResult)。D、測試過程中的事件監(jiān)聽者(TestListener)。E、每一個測試方法所發(fā)生的與預期不一致狀況的描述,稱其測試失敗元素(TestFailure)F、JUnitFramework中的出錯異常(AssertionFailedError)。JUnit框架是一個典型的Composite模式:TestSuite可以容納任何派生自Test的對象;當調(diào)用TestSuite對象的run()方法是,會遍歷自己容納的對象,逐個調(diào)用它們的run()方法。(可參考《程序員》2023-6期)。3.4、JUnit的安裝和配置JUnit安裝步驟分解:在/junit/中下載JUnit包并將Junit壓縮包解壓到一個物理目錄中(例如C:\Junit3.8.1)。
記錄Junit.jar文件所在目錄名(例如C:\Junit3.8.1\Junit.jar)。
進入操作系統(tǒng)Windows2000操作系統(tǒng)為準),按照次序點擊“開始設置控制面板”。
在控制面板選項中選擇“系統(tǒng)”,點擊“環(huán)境變量”,在“系統(tǒng)變量”的“變量”列表框中選擇“CLASS-PATH”關鍵字(不區(qū)分大小寫),如果該關鍵字不存在則添加。
雙擊“CLASS-PATH”關鍵字添加字符串“C:\Junit3.8.1\Junti.jar”(注意,如果已有別的字符串請在該字符串的字符結尾加上分號“;”),這樣確定修改后Junit就可以在集成環(huán)境中應用了。
對于IDE環(huán)境,對于需要用到的JUnit的項目增加到lib中,其設置不同的IDE有不同的設置。
3.5、JUnit中常用的接口和類(以Test接口——運行測試和收集測試結果Test接口使用了Composite設計模式,是單獨測試用例(TestCase),聚合測試模式(TestSuite)及測試擴展(TestDecorator)的共同接口。
它的publicintcountTestCases()方法,它來統(tǒng)計這次測試有多少個TestCase,另外一個方法就是publicvoidrun(TestResult),TestResult是實例接受測試結果,run方法執(zhí)行本次測試。
TestCase抽象類——定義測試中固定方法TestCase是Test接口的抽象實現(xiàn),(不能被實例化,只能被繼承)其構造函數(shù)TestCase(stringname)根據(jù)輸入的測試名稱name創(chuàng)建一個測試實例。由于每一個TestCase在創(chuàng)建時都要有一個名稱,若某測試失敗了,便可識別出是哪個測試失敗。
TestCase類中包含的setUp()、tearDown()方法。setUp()方法集中初始化測試所需的所有變量和實例,并且在依次調(diào)用測試類中的每個測試方法之前再次執(zhí)行setUp()方法。tearDown()方法則是在每個測試方法之后,釋放測試程序方法中引用的變量和實例。
開發(fā)人員編寫測試用例時,只需繼承TestCase,來完成run方法即可,然后JUnit獲得測試用例,執(zhí)行它的run方法,把測試結果記錄在TestResult之中。
Assert靜態(tài)類——一系列斷言方法的集合Assert包含了一組靜態(tài)的測試方法,用于期望值和實際值比對是否正確,即測試失敗,Assert類就會拋出一個AssertionFailedError異常,JUnit測試框架將這種錯誤歸入Failes并加以記錄,同時標志為未通過測試。如果該類方法中指定一個String類型的傳參則該參數(shù)將被做為AssertionFailedError異常的標識信息,告訴測試人員改異常的詳細信息。
JUnit提供了6大類31組斷言方法,包括基礎斷言、數(shù)字斷言、字符斷言、布爾斷言、對象斷言。
其中assertEquals(Objectexpcted,Objectactual)內(nèi)部邏輯判斷使用equals()方法,這表明斷言兩個實例的內(nèi)部哈希值是否相等時,最好使用該方法對相應類實例的值進行比較。而assertSame(Objectexpected,Objectactual)內(nèi)部邏輯判斷使用了Java運算符“==”,這表明該斷言判斷兩個實例是否來自于同一個引用(Reference),最好使用該方法對不同類的實例的值進行比對。asserEquals(Stringmessage,Stringexpected,Stringactual)該方法對兩個字符串進行邏輯比對,如果不匹配則顯示著兩個字符串有差異的地方。ComparisonFailure類提供兩個字符串的比對,不匹配則給出詳細的差異字符。
TestSuite測試包類——多個測試的組合TestSuite類負責組裝多個TestCases。待測得類中可能包括了對被測類的多個測試,而TestSuit負責收集這些測試,使我們可以在一個測試中,完成全部的對被測類的多個測試。
TestSuite類實現(xiàn)了Test接口,且可以包含其它TestSuites。它可以處理加入Test時的所有拋出的異常。
TestSuite處理測試用例有6個規(guī)約(否則會被拒絕執(zhí)行測試)
A測試用例必須是公有類(Public)的B測試用例必須繼承與TestCase類C測試用例的測試方法必須是公有的(Public)D測試用例的測試方法必須被聲明為VoidE測試用例中測試方法的前置名詞必須是testF測試用例中測試方法誤任何傳遞參數(shù)TestResult結果類和其它類與接口TestResult結果類集合了任意測試累加結果,通過TestResult實例傳遞個每個測試的Run()方法。TestResult在執(zhí)行TestCase是如果失敗會異常拋出
TestListener接口是個事件監(jiān)聽規(guī)約,可供TestRunner類使用。它通知listener的對象相關事件,方法包括測試開始startTest(Testtest),測試結束endTest(Testtest),錯誤,增加異常addError(Testtest,Throwablet)和增加失敗addFailure(Testtest,AssertionFailedErrort)
TestFailure失敗類是個“失敗”狀況的收集類,解釋每次測試執(zhí)行過程中出現(xiàn)的異常情況。其toString()方法返回“失敗”狀況的簡要描述3.6、JUnit一個實例在控制臺中簡單的范例如下:
1、寫個待測試的Triangle類,創(chuàng)建一個TestCase的子類ExampleTest:
2、ExampleTest中寫一個或多個測試方法,斷言期望的結果(注意:以test作為待測試的方法的開頭,這樣這些方法可以被自動找到并被測試)
3、ExampleTest中寫一個suite()方法,它會使用反射動態(tài)的創(chuàng)建一個包含所有的testXxxx方法的測試套件:
Junit本身的操作并沒有什么特別的地方。這里提供了6種測試項目,分別針對不同的測試對象或者可以說是目標。
testcase:這個是最常用的,也就是對程序代碼中類的測試。
testsuite:這個更高一級,可以一次行測試多個類。其效果與分別進行多個testcase是相同的。
jdbcfixture:這個是針對數(shù)據(jù)庫鏈接的測試。(很少用,不大懂。)我學的是默認的jdbc的數(shù)據(jù)庫。
jndifixture:這個相當于是一個容器測試。如果說主要的內(nèi)容就是測試那些存放鏈接的fixture。
在編程的時候,經(jīng)常把一些常用的鏈接放在一個類似于容器的東東里面,這樣,如果調(diào)用重復調(diào)用鏈接的話,可以同一調(diào)用容器地址,再具體指向里面的鏈接。這是否是一種管理呢。^_^
comparisionfixture:這個也是比較少用的東東。
customfixture:這個是自定義設置。只是生成一個框架。junitx.framework包主要功能
該包以類方法的方式擴展junit.framework.Assert的功能。也就是這時候,可以不用繼承相應的類,可以直接使用斷言的相關的功能。事實上基于元數(shù)據(jù)的測試框架都基本采用這種方式實現(xiàn)斷言。junitx.framework.Assert
junitx.framework.ArrayAssertjunitx.framework.ComparableAssert
junitx.framework.FileAssert
junitx.framework.ListAssert
junitx.framework.ObjectAssert
junitx.framework.NamingAssert
junitx.framework.OrderedTestSuite
junitx.framework.StringAssert
junitx.framework.ThrowableAssert
2.測試類的私有屬性
2.1測試類的私有屬性的實現(xiàn)
使用相關類(junitx.util.PrivateAclearcase/"target="_blank">ccessor)的方法類訪問私有屬性和方法。參考:ExampleJUnit_Addons_Exampleexample1目錄下example1.TestAccount類example1.Account類2.2實現(xiàn)訪問類的屬性和方法的原理
利用Java的反射機制來實現(xiàn)的。l使用java.lang.Class的相關方法,獲得相關指定對象的Field,然后調(diào)用field.setAccessib
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中子、電子及Γ輻照裝置合作協(xié)議書
- 2025年機載設備綜合測試臺合作協(xié)議書
- 2025年石材翻新護理用品合作協(xié)議書
- 建筑力學期末考試B卷試題及答案
- 2025年個人貨物運輸協(xié)議模板(2篇)
- 2025年個人房屋設計裝修合同(4篇)
- 2025年五年級體育教師工作總結(5篇)
- 2025年儀器銷售合同標準版本(4篇)
- 2025年五年級語文備課組長工作總結范文(二篇)
- 2025年二手車車輛轉讓合同簡單版(2篇)
- 2024年重慶市中考數(shù)學試卷(AB合卷)【附答案】
- 2024年安徽省高校分類考試對口招生語文試卷真題(含答案)
- DB43-T 2142-2021學校食堂建設與食品安全管理規(guī)范
- 宏觀利率篇:債券市場研究分析框架
- 橋梁頂升移位改造技術規(guī)范
- 六年級語文(上冊)選擇題集錦
- 介紹人提成方案
- 天津在津居住情況承諾書
- PHOTOSHOP教案 學習資料
- 2012年安徽高考理綜試卷及答案-文檔
- 《游戲界面設計專題實踐》課件-知識點5:圖標繪制準備與繪制步驟
評論
0/150
提交評論