全面的面向?qū)ο筌浖臏y試基本知識(shí)介紹_第1頁
全面的面向?qū)ο筌浖臏y試基本知識(shí)介紹_第2頁
全面的面向?qū)ο筌浖臏y試基本知識(shí)介紹_第3頁
全面的面向?qū)ο筌浖臏y試基本知識(shí)介紹_第4頁
全面的面向?qū)ο筌浖臏y試基本知識(shí)介紹_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、面向?qū)ο筌浖臏y試面向?qū)ο筌浖臏y試 本章要點(diǎn)本章要點(diǎn) 面向?qū)ο筌浖臏y試與傳統(tǒng)軟件的區(qū)別; 類測試價(jià)值的評估方法; 類測試用例設(shè)計(jì)方法; 特殊類的測試方法; 劃分面向?qū)ο筌浖y試的方法; 開源工具Junit的使用方法。 本章目標(biāo)本章目標(biāo) 了解面向?qū)ο蟮臏y試與傳統(tǒng)軟件測試的異同; 掌握類測試的基礎(chǔ)知識(shí); 重點(diǎn)理解針對抽象類以及接口類等特殊類的測試技巧,設(shè)計(jì)類測試用例和測試驅(qū)動(dòng)程序的幾種方法; 初步了解Junit,并掌握安裝和卸載此工具的方法,以及如何使用它進(jìn)行簡單的測試。 面向?qū)ο蟮臏y試與傳統(tǒng)測試的比較面向?qū)ο蟮臏y試與傳統(tǒng)測試的比較 傳統(tǒng)的測試計(jì)算機(jī)軟件的策略是從“小型測試”開始,逐步走向“大

2、型測試”,且單元測試集中在最小的可編譯程序單位子程序。 面向?qū)ο蟪绦虻慕Y(jié)構(gòu)不再是傳統(tǒng)的功能模塊結(jié)構(gòu),而是作為一個(gè)整體,并且對每個(gè)開發(fā)階段都有不同以往的要求和結(jié)果,已經(jīng)不可能用功能細(xì)化的觀點(diǎn)來檢測面向?qū)ο蠓治龊驮O(shè)計(jì)的結(jié)果。 面向?qū)ο蟮能浖y試分為:面向?qū)ο蠓治龅臏y試,面向?qū)ο笤O(shè)計(jì)的測試,面向?qū)ο缶幊痰臏y試, 面向?qū)ο髥卧獪y試,面向?qū)ο蠹蓽y試,面向?qū)ο笙到y(tǒng)測試。 1、傳統(tǒng)的面向過程分析與面向?qū)ο蠓治觯∣OA) 2、結(jié)構(gòu)化的設(shè)計(jì)方法與面向?qū)ο笤O(shè)計(jì)(OOD) 3、典型的面向?qū)ο蟪绦蚓哂欣^承、封裝和多態(tài)的新特性。 4、傳統(tǒng)的單元測試的對象是軟件設(shè)計(jì)的最小單位模塊。 5、傳統(tǒng)的集成測試,主要有兩種通過集

3、成完成的功能模塊進(jìn)行測試的方式:自頂向下集成 自底向上集成。 6、為了保證軟件的功能完整性,除了單元測試和集成測試,還必須經(jīng)過規(guī)范的系統(tǒng)測試。信息隱蔽對測試的影響信息隱蔽對測試的影響 類的重要作用之一是信息隱蔽。它對類中所封裝的信息的存取進(jìn)行控制,從而避免類中有關(guān)實(shí)現(xiàn)細(xì)節(jié)的信息被錯(cuò)誤地使用。該隱蔽機(jī)制給測試帶來了困難。封裝和繼承對測試的影響封裝和繼承對測試的影響 若一個(gè)類得到了充分的測試,當(dāng)其被子類繼承若一個(gè)類得到了充分的測試,當(dāng)其被子類繼承后,繼承的方法在子類的環(huán)境中的行為特征需要后,繼承的方法在子類的環(huán)境中的行為特征需要重新測試。重新測試。 多態(tài)性對測試的影響多態(tài)性對測試的影響 傳統(tǒng)軟件測

4、試中經(jīng)常使用靜態(tài)分析技術(shù)對代碼進(jìn)行分析;面向?qū)ο筌浖校捎趧?dòng)態(tài)綁定和多態(tài)性的存在所帶來的不確定性,給測試覆蓋率的滿足增大了難度。類測試基礎(chǔ)類測試基礎(chǔ) 1 1、類測試概念、類測試概念:驗(yàn)證類的實(shí)現(xiàn)是否和該類的說明完全一致。 2 2、類測試的方法、類測試的方法:通過代碼檢查或執(zhí)行測試用例的方法來有效地進(jìn)行類測試。(后者優(yōu)于前者)。 3 3、類測試人員、類測試人員 類測試通常由開發(fā)人員來進(jìn)行;(會(huì)帶來好處和不足之處)。4 4、類測試時(shí)間、類測試時(shí)間 類的測試伴隨著開發(fā)過程中的各個(gè)階段,當(dāng)類的說明或?qū)崿F(xiàn)發(fā)生變化時(shí)應(yīng)該執(zhí)行回歸測試。5 5、類測試過程、類測試過程 為類創(chuàng)建實(shí)例-創(chuàng)造適當(dāng)?shù)沫h(huán)境-運(yùn)行測試

5、用例(向一個(gè)實(shí)例發(fā)送一個(gè)或多個(gè)消息)-通過參數(shù)來檢查測試運(yùn)行的結(jié)果-清除執(zhí)行測試用例所需的測試環(huán)境。 類在類在UMLUML中的描述中的描述 UML(Unified Modeling Language)語言是一種支持對象技術(shù)的建模語言,是在計(jì)算機(jī)系統(tǒng)中表示真實(shí)世界的語言,描述真實(shí)世界中的對象和它們之間的關(guān)系,支持應(yīng)用的開發(fā)。 在UML中,用來表示類的符號(hào)是矩形,并劃分為三個(gè)區(qū)域,分別是: 名稱區(qū)域:顯示類的名稱 屬性區(qū)域:顯示在類中定義的變量。 操作區(qū)域:顯示在類中定義的方法。 如圖-1所示:ClassNameAttributesOperation()ClassNameAttributesOpe

6、ration()InterfaceOperation()具體類抽象類接口類圖-1 類的UML表示法 類之間的關(guān)系分為六類,分別是關(guān)聯(lián)、泛化、實(shí)現(xiàn)、依賴、聚合和組合。每種關(guān)系分別使用不同的符號(hào)來表示(如:表-1所示),并分別用私有的、保護(hù)的和公有的三個(gè)關(guān)鍵字來修飾類(如:表-2所示)。表-1 UML類圖符號(hào)描述 關(guān)鍵詞UML符號(hào)說明泛化關(guān)聯(lián)實(shí)現(xiàn)依賴聚合組合同一層次可見用作定義其他類的基類用作定義其他類的接口一方調(diào)用另一方的部分一方是另一方的部分一方是另一方的必要組成部分1.n1表-2 UML類圖作用域描述類測試的價(jià)值類測試的價(jià)值 選擇將每個(gè)類作為一個(gè)單元進(jìn)行單獨(dú)的測試,還是將其同其他類綁定進(jìn)行集

7、成測試,需要使用如下3個(gè)要素來進(jìn)行測試價(jià)值的評估:關(guān)鍵詞UML符號(hào)說明私有保護(hù)公有-#+私有的,只在當(dāng)前類中可見保護(hù)的,只對繼承的類中可見公共的,所有的關(guān)聯(lián)對象都是可見的 1、類本身的復(fù)雜程度 2、類在整個(gè)系統(tǒng)中的層次 3、開發(fā)該類測試驅(qū)動(dòng)程序需要投入的成本 4、類本身的風(fēng)險(xiǎn)程度類測試用例設(shè)計(jì)類測試用例設(shè)計(jì) 一般基于如下一般基于如下3個(gè)標(biāo)準(zhǔn)設(shè)計(jì)測試系列,即基于個(gè)標(biāo)準(zhǔn)設(shè)計(jì)測試系列,即基于狀態(tài)的覆蓋率、基于限制的覆蓋率和基于代碼的狀態(tài)的覆蓋率、基于限制的覆蓋率和基于代碼的覆蓋率。覆蓋率。 設(shè)計(jì)測試用例的方法有多種: (例子詳見教材) 1、根據(jù)前置和后置條件確定測試用例 2、根據(jù)狀態(tài)轉(zhuǎn)換確定測試用例

8、 3、根據(jù)訪問控制修飾符(限定類、屬性或方法被程序里的其他部分訪問和調(diào)用的修飾符)來確定測試用例。 類測試驅(qū)動(dòng)程序設(shè)計(jì)類測試驅(qū)動(dòng)程序設(shè)計(jì) 從開發(fā)的角度:測試驅(qū)動(dòng)的基本思想是在對設(shè)計(jì) 之前先考慮好測試代碼; 從測試的角度:為了執(zhí)行測試,運(yùn)行測試用例, 找出軟件中隱藏的BUG。 因此,測試驅(qū)動(dòng)程序的構(gòu)建應(yīng)該簡單、透明、易維護(hù),能夠提供盡可能多的服務(wù),同時(shí)兼顧自增量更新,更理想的情況就是能夠復(fù)用已存在的測試驅(qū)動(dòng)程序的代碼。 編寫類測試驅(qū)動(dòng)程序的方法有很多種 ,以Java語言為例來說明測試驅(qū)動(dòng)程序設(shè)計(jì)的結(jié)構(gòu)。 (主要以兩票系統(tǒng)為例講解,詳見教材) 1、在main方法中寫入需要運(yùn)行的測試用例,即實(shí)現(xiàn)ma

9、in方法,然后編譯、執(zhí)行該類。 2、在類中實(shí)現(xiàn)一個(gè)靜態(tài)測試方法,通過調(diào)用該測試方法來收集每個(gè)測試用例的執(zhí)行結(jié)果。 3、實(shí)現(xiàn)獨(dú)立的測試類,它的職責(zé)是執(zhí)行并收集每個(gè)測試用例的結(jié)果。 類測試的延伸類測試的延伸 本節(jié)將簡要介紹類測試構(gòu)造思想以及如何對接口類、抽象類等進(jìn)行測試的方法。 一、繼承層次結(jié)構(gòu)中類的測試 繼承是實(shí)現(xiàn)接口和代碼復(fù)用的有效機(jī)制。根據(jù)繼承機(jī)制的特點(diǎn),父類中被測試用例所測試的代碼被子類繼承,只要父類代碼沒有被子類“覆蓋”,那么就不用重新創(chuàng)建這些測試用例。 圖-6顯示了各類之間的繼承關(guān)系: Class_A+operation1()+operation2()Class_B+operation

10、3()Class_C+operation2()+operation3()圖-6 類之間的繼承關(guān)系Class_A類有兩個(gè)實(shí)例方法operation1()和operation2(),Class_B類繼承了Class_A類并且實(shí)現(xiàn)了新的實(shí)例方法operation3(),Class_C類繼承了Class_B類,覆蓋了Class_B類的實(shí)例方法operation3()和實(shí)例方法operation2(). 根據(jù)圖-6中這三個(gè)類之間的區(qū)別,可以確定繼承的測試用例中是否需要產(chǎn)生新的子類測試用例,哪些測試用例適用于測試子類,哪些測試用例在測試子類中不必執(zhí)行,如下表-7所示:類繼承類類方法是否改變是否增加測試用例

11、Class_AClass_BClass_BClass_AClass_Coperation1()operation2()operation3()operation2()operation1()operation3()operation2()operation1()FalseFalseFalseTrueTrueTrueFalseFalseTrueFalseTrueTrue 由此,可以得出繼承層次結(jié)構(gòu)中類測試的測試用例可以采用如下增補(bǔ)原則: 1)如果子類新增了一個(gè)或者多個(gè)新的操作,就需要增加相應(yīng)的測試用例。 2)如果子類定義的同名方法覆蓋了父類的方法,就需要增加相應(yīng)的測試用例。 那么,在具體構(gòu)建類測

12、試用例時(shí)可以采用如圖-7所示的結(jié)構(gòu)。對于基類我們要全部測試,底層的測試類可以對其父類的測試方法回歸。 Class_A+operation1()+operation2()Class_B+operation3()Class_C+operation2()+operation3()Class_A_TestCase+testoperation1()+testoperation2()Class_B_TestCase+testoperation3()Class_C_TestCase+testoperation2()+testoperation3()圖-7 類測試用例的構(gòu)建 二、接口類測試 對類進(jìn)行測試時(shí)需要

13、構(gòu)建可執(zhí)行的類實(shí)例,而接口不存在任何構(gòu)造方法無法被實(shí)現(xiàn)。 由于接口一定會(huì)在某個(gè)類中實(shí)現(xiàn),因此就使用一個(gè)實(shí)現(xiàn)接口的類來做測試。遵循以下原則:l如果接口沒有被任何類實(shí)現(xiàn)就無需進(jìn)行測試。l如果已被別的類實(shí)現(xiàn),那么就針對實(shí)現(xiàn)該接口的類進(jìn)行測試。(如下圖-8)Class_C+Class_C+a_Method()+b_Method()+c_Method()Class_C_TestCase+Class_C_TestCase()+a_Method()+b_Method()+c_Method()+newObject()+testA_Method()+testB_Method()+testB_Method()In

14、terface_A+a_method()+b_method()圖-8 InterFace接口測試類圖 三、抽象類測試 如果要構(gòu)造抽象類的測試驅(qū)動(dòng)程序首先要繼承測試驅(qū)動(dòng)類,并且需要同時(shí)繼承被測試抽象類,因?yàn)樵擃惒荒鼙痪唧w化。但Java采用單繼承機(jī)制,因此對該抽象類的測試驅(qū)動(dòng)程序就不能同時(shí)繼承兩個(gè)抽象類,通常,采用以下兩種方法來處理抽象類的測試問題: 1、一般情況下,利用Java的內(nèi)類機(jī)制,在抽象類的測試驅(qū)動(dòng)程序內(nèi)引入內(nèi)類,讓內(nèi)類實(shí)現(xiàn)對被測試抽象類的繼承,然后把它作為引用體,這樣對內(nèi)類的測試就等價(jià)于對被測試抽象類的測試。舉例如下: /* AbstractExample.java*創(chuàng)建日期:*創(chuàng)建人

15、員:*修改日期:*修改人員:*/package applet.unedu.tlpe.test;public abstract class AbstractExample implements Examplepublic AbstractExample()/*AbstractExampleTester.java*創(chuàng)建日期:*創(chuàng)建人員:*修改日期:*修改人員:*/package applet.unedu.tlpe.test;public abstract class AbstractExampleTester extends TestCasestatic class AbstractExample

16、_Inner extends AbstractExamplepublic AbstractExample_Inner()super(argumentname);public AbstractExampleTester()super(argumentname);public Example newObject(argumentname)return new AbstractExample_Inner();public void testAbstractExample_Inner() 2、如果抽象類被具體類繼承,那么,在創(chuàng)建該具體類的測試驅(qū)動(dòng)程序時(shí)要繼承抽象類的測試驅(qū)動(dòng)程序,在以后的回歸測試中,只

17、要執(zhí)行最低層的測試類,就可以對其父測試類重新執(zhí)行一次測試,同時(shí)將測試結(jié)果分別返回。 四、重載和覆蓋測試 覆蓋是在子類中重新定義了從父類中繼承的同名方法;重載與覆蓋不同,不是子類對父類同名方法的重新定義,而是類對自身已有的同名方法的重新定義。 在測試過程中,可以參考如下兩個(gè)原則: 要對類實(shí)例方法的所有重載形式分別進(jìn)行測試。 子類的測試驅(qū)動(dòng)程序在繼承父類測試驅(qū)動(dòng)程序的同時(shí),要對覆蓋了父類的同名方法進(jìn)行測試,而且應(yīng)該重新對父類的類實(shí)例方法的所有重載形式執(zhí)行一次測試。 package applet.unedu.tlpe.test;public class reload public reload()p

18、ublic int method_a()return “method_a()”;public int method_a(String a)return “method_a(String a)”;public int method_a(String a,String b)return “method_a(String a,String b)”;public int method_b()return “method_b()”;public int method_c()return “method_c()”; reload_TestCase為reload類的測試驅(qū)動(dòng)程序,該類對reload類中包含的

19、method_a實(shí)例方法的三種重載形式分別進(jìn)行了測試,代碼如下:/*reload_TestCase .java*/package applet.unedu.tlpe.test;public class reload_TestCase extends TestCase.public reload_TestCase(argument )public void testMethod_a()public void testMethod_a_a()public void testMethod_a_ab()public void testMethod_b()public void testMethod_c

20、() 五、異常測試 因?yàn)榇嬖诋惓#跇?gòu)建測試用例時(shí),還要考慮如何測試在某種特殊情況下程序代碼是否返回了指定的狀態(tài)。 面向?qū)ο鬁y試的層次面向?qū)ο鬁y試的層次 在傳統(tǒng)軟件中,確定單元的指導(dǎo)方針是: 1、能夠自身編譯的最小程序塊; 2、單一過程/函數(shù)(獨(dú)立); 3、由一個(gè)人完成的小規(guī)模工作。 面向?qū)ο筌浖y試與傳統(tǒng)方法的區(qū)別:指導(dǎo)方針中沒有明確說明是把類還是方法作為單元。 下面對分別以方法和類作為單元的測試進(jìn)行簡單的介紹和比較。 以方法為單元 可以將面向?qū)ο髥卧獪y試歸結(jié)為傳統(tǒng)的單元測試。 可以使用所有傳統(tǒng)功能性測試和結(jié)構(gòu)性測試技術(shù)。 前期工作相對容易,但后續(xù)測試工作重。 以類為單元 面向?qū)ο鬁y試的層次

21、,取決于單元的構(gòu)成,一般采用三層或四層方式。如果把單個(gè)操作或方法看作單元,則有四層測試,即操作/方法、類、繼承和系統(tǒng)測試。 面向?qū)ο鬁y試的主要問題是集成測試,可以看作是第三層,即在通過測試的類之間的交互測試。 JunitJunit簡介簡介 Junit是用于測試使用Java語言編寫的面向?qū)ο蟪绦虻膯卧墱y試工具。 (由Eric Gamma及Kent Beck編寫的,由SourceForge發(fā)行,使用許可證遵循IBMs common Public License Version 1.0公開版權(quán)規(guī)范) *優(yōu)點(diǎn)* : 1、提升程序代碼的質(zhì)量的同時(shí),Junit測試使我們能夠更快速的編寫程序。 2、Jun

22、it使用簡單 3、Junit能夠檢驗(yàn)測試結(jié)果并立即提供反饋。 4、Junit測試可以組織成一個(gè)有層次的測試系列架構(gòu)。 5、使用Junit開發(fā)測試成本低。 6、Junit測試提升軟件的穩(wěn)定性。 7、Junit測試是使用Java語言開發(fā)的。 8、Junit是免費(fèi)的。 一、Junit的安裝和配置 (略) 二、Junit的卸載步驟 (略) 三、支持Junit的Java IDE 目前主要有 Forte for Java 3.0 Enterprise Edition; JBuilder 6 Enterprise Edition; Visual Age for Java等 。 四、Junit的各種斷言 Ju

23、nit提供了一些用于幫助我們確定某個(gè)被測試函數(shù)是否正常工作的輔助函數(shù),通常把這些函數(shù)稱之為斷言。可以判斷某條件是否為真;兩數(shù)據(jù)是否相等。 下面舉出一些斷言方法: AssertEquals(String message,expected,actual) expected參數(shù)代表期望值;actual參數(shù)代表被測試代碼實(shí)際產(chǎn)生的值;message參數(shù)可選,常用于報(bào)告出錯(cuò)信息。 assertNull/ assertNotNull(String message,java.lang.Object object) 用來判斷給定的對象是否為空/(是否為非空),如果答案為否,則會(huì)失敗,同樣message參數(shù)是可

24、選的。 assertSame/assertNotSame (String message,expected,actual)驗(yàn)證expected參數(shù)和actual參數(shù)所引用的是否為/(不為)同一個(gè)對象,答案為否將會(huì)失敗, assertTrue(String message, boolean condition)驗(yàn)證給定的二元條件是否為真,如果為假的話,將會(huì)失敗 注意:當(dāng)某個(gè)斷言失敗的時(shí)候,其所在的測試方法就會(huì)停止,也就是說剩余的斷言將不會(huì)執(zhí)行,此時(shí)應(yīng)該先修復(fù)這個(gè)失敗的測試再繼續(xù)進(jìn)行其他測試。另外,當(dāng)有的測試失敗時(shí)不能給原有代碼添加新的特性!此時(shí),應(yīng)該盡快的修復(fù)這個(gè)錯(cuò)誤,直到所有的測試都順利通過。

25、 五、Junit自動(dòng)化測試框架 定義:就是可以對代碼進(jìn)行單元測試的框架。 簡單的自動(dòng)化測試框架應(yīng)該滿足如下幾個(gè)要求: 1、能夠以某種方式將測試用例組織成一個(gè)測試包,以便可以一次執(zhí)行所有測試用例,盡量達(dá)到讓實(shí)現(xiàn)人員或者測試人員按一個(gè)按鈕就能完成所有的測試工作,并且輸出清晰的測試結(jié)果的目的。2、支持簡單的操作,可以向測試包中添加任意多個(gè)測試用例,并且不影響測試包的正常運(yùn)行。3、支持測試隨意組合(一個(gè)測試包可以包含其他的測試包)。 Junit的自動(dòng)化測試框架如圖-9所示:TestCasesetUp()teardown()MyTestCaseTestRun()TestSuiteaddTest()圖-9

26、 Junit的自動(dòng)化測試框架 Junit.Framework包中包含了Junit測試類所需的所有基類(Base Class),實(shí)際上這個(gè)包也是整個(gè)Junit的基礎(chǔ)框架(Base_Framework)。TestCase類是這個(gè)包的核心,測試人員可在繼承TestCase類的基礎(chǔ)上開發(fā)自己的測試驅(qū)動(dòng)程序。其余的類用來支持TestCase類,其中的TestSuite用來聚合多個(gè)測試用例(TestCase);Assert類用來驗(yàn)證期望值和實(shí)際值;TestResult類收集所有測試用例執(zhí)行后的結(jié)果;在Test接口中建立了TestCase和TestSuite之間的關(guān)聯(lián),同時(shí)它也為整個(gè)測試框架作了擴(kuò)展預(yù)留。

27、下面通過一段代碼對Junit框架的使用進(jìn)行簡單介紹(包含了前面介紹的斷言)。 Line 1 import junit.framework.*; /導(dǎo)入必需的Junit類庫 2 public class TestSimple extends TestCase 3 public TestSimple(String name) 4 super(name); 5 6 public void testPlus() 7 assertEquals(2,3-1); 8 9 一個(gè)測試類會(huì)包含一些測試方法;每個(gè)方法可以包含一個(gè)或者多個(gè)斷言語句,這些功能能滿足最基本的測試要求。 但有時(shí)候希望在一個(gè)測試類中能調(diào)用其他

28、測試類,或者測試人員可能只想運(yùn)行一個(gè)測試類中的某些方法??梢酝ㄟ^創(chuàng)建Test suite來實(shí)現(xiàn)。 例如,給出如下一個(gè)類似TestSimple的測試驅(qū)動(dòng)類,二者不同之處在于增加了一個(gè)靜態(tài)的Test suite方法,通過suite()方法就可以返回任何想得到的測試集合(測試類中沒有suite()方法時(shí),Junit會(huì)自動(dòng)運(yùn)行所有以test為開頭命名的方法)。代碼如下:Line 1 import junit.framework.*; 2 public class TestSimple extends TestCase 3 public TestSimple(String name) 4 super(n

29、ame); 5 6 public void testPlus()7 assertEquals(2,3-1);8 9 public void testAdd()10 assertEquals(4,2+2); public void testMultiple() assertEquals(4,22); 15 public static Test suite() TestSuite suite=new TestSuite(); Suite.addTest( new TestClassOne(“testPlus”); Suite.addTest(20 new TestClassOne(“testAdd

30、”); return suite; 六、環(huán)境的建立和清理 每個(gè)測試的運(yùn)行是相互獨(dú)立的,每次測試都要重新設(shè)置某些測試環(huán)境;在測試完成之后釋放一些資源。 Junit中的TestCase基類就為我們提供了這樣兩個(gè)方法,可以分別用于環(huán)境的建立和清理: protected void setUp(); protected void teardown(); (例子詳見教材)七、JUnit支持兩種運(yùn)行單個(gè)測試的方法: 靜態(tài)的和動(dòng)態(tài)的方法。 1、靜態(tài)的方法是覆蓋TestCase類的runTest()方法,一般是采用內(nèi)部類的方式創(chuàng)建一個(gè)測試實(shí)例: TestCase test01 = new testCar(tes

31、tgetWheels) public void runTest() testGetWheels(); 2、動(dòng)態(tài)的方法是用內(nèi)省來實(shí)現(xiàn)runTest()以創(chuàng)建一個(gè)測試實(shí)例。這要求測試的名字就是需要調(diào)用的測試方法的名字: TestCase test01 = new testCar(testGetWheels); 八、Testsuite的使用 在JUnit中,任何測試類都能包含一個(gè)名為suite的靜態(tài)方法,即:public static Test suite();在suite()方法中,將所需要的測試實(shí)例加到一個(gè)TestSuite對象中,并返回這個(gè)TestSuite對象。 因?yàn)門estSuite和Te

32、stCase都實(shí)現(xiàn)了Test接口,而Test接口定義了運(yùn)行測試所需的方法。所以,在測試類執(zhí)行的過程中,只有添加到TestSuite中的測試才能夠被運(yùn)行,因此不用去運(yùn)行我們暫時(shí)還不需要的測試。九、Junit中main方法的使用 使用方法如下:public static void main(String args)Junit.textui.TestRunner.run(TestdrawbhTest.class);/使用文本交互模式啟動(dòng)該測試用例Junit.awtui.TestRunner.run(TestdrawbhTest.class);/使用AWT圖形交互模式啟動(dòng)該測試用例Junit.swingui.TestRunner.run(Testdrawbh

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論