軟件測試 課件 單元4 單元測試_第1頁
軟件測試 課件 單元4 單元測試_第2頁
軟件測試 課件 單元4 單元測試_第3頁
軟件測試 課件 單元4 單元測試_第4頁
軟件測試 課件 單元4 單元測試_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單元2單元測試軟件開發(fā)工程師小張開發(fā)了自動售貨機系統(tǒng),他想測試一下代碼方法是否有問題,應該如何來進行?單元測試可以幫助他解決此問題。引例描述單元測試主要針對代碼中的方法或函數(shù)進行測試,是代碼級最小單位的測試。通常單元測試在開發(fā)階段由開發(fā)人員完成,是程序開發(fā)過程中非常重要的一個環(huán)節(jié)。單元測試一般使用自動化測試工具完成,JUnit是一個開源的Java編程語言的單元測試標準框架。引例描述開發(fā)工程師小張要完成單元測試任務,需按照下面3步的單元測試學習計劃來完成學習。1.學習單元測試的入門知識,編寫驅動模塊和樁模塊程序對被測程序模塊進行動態(tài)測試;2.學習JUnit基礎,對Java程序進行單元測試;3.學習JUnit的核心架構,對自動售貨機程序進行單元測試。引例描述目錄動態(tài)測試Java程序單元任務一使用JUnit測試Java程序任務二使用Junit測試程序任務三任務一動態(tài)測試Java程序單元●本任務對已經(jīng)編寫的Java程序方法進行測試。開發(fā)人員通過編寫被測單元的上層模塊(驅動模塊),被測單元所調用的模塊(樁模塊),建立單元測試的完整環(huán)境,使被測單元能夠運行起來,對Java程序方法進行動態(tài)測試,從而來驗證被測單元的正確性。●在實際操作的過程中,學生應獨立自主完成程序單元的分離,面對復雜的軟件系統(tǒng),能整體系統(tǒng)的考慮程序的執(zhí)行路徑,認真對待每個單元模塊的細節(jié),細致、嚴謹、規(guī)范、全面、快速的設計被測程序的上層模塊和下層調用模塊。任務陳述

單元測試也成為模塊測試,是指對軟件中的最小可測試單元或基本組成單元進行檢查和驗證。對應單元測試中單元的含義,一般要根據(jù)實際情況去判定其具體含義,對于軟件的代碼,單元就是一個函數(shù)、方法或者類,對于軟件的界面,單元就是一個窗口或菜單。通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數(shù)的行為。如果將測試比做清洗臺機器,那么單元測試就是清洗各個零件的內部?;顒右徽J識單元測試一、單元測試的定義單元測試是小段代碼,用于檢驗被測代碼的一個很小的,很明確的功能是否正確。單元測試的作用是獲取應用程序中可測軟件的最小片段,將其同其他代碼隔離開來,然后確定它的行為確實和開發(fā)者所期望的一致。顯然,只有保證了最小單位的代碼準確,才能有效構建基于它們之上的軟件模塊及系統(tǒng)。單元測試是由程序員自己來完成。程序員有確保自己編寫的軟件單元準確的責任,通過對自己編寫的功能代碼進行單元測試,大大提高了代碼和軟件質量。單元測試不但會使工作完成得更輕松,而且會令設計變得更好,甚至大大減少花在調試上的時間?;顒右徽J識單元測試二、單元測試的目的單元測試中選取的單元應具有明確的功能定義、性能定義以及連接其他部分的接口定義等,且應可以清晰地與其他單元區(qū)分開來。從某種意義上而言,單元的概念已經(jīng)護展為組件。單元可以認為是人為規(guī)定的最小的被測功能模塊。1.對于C語言這類面向過程的開發(fā)語言,單元常指一個函數(shù)或子過程。在特殊情況下,若存在幾個函數(shù)之間具有強耦合性,導致函數(shù)關系非常密切,則應將這幾個函數(shù)共同作為一個單元來測試。2.對于C++、Java語言或C#等面向對象的開發(fā)語言,單元一般指一個類。然而,某些基礎類可能非常龐大,涉及大量屬性和方法,甚至需要幾個開發(fā)人員來編碼完成,則若將該類作為一個單元來測試并不合適,此時的測試將上升到集成測試的層面。3.圖形化軟件中,單元常指一個窗口或一個菜單?;顒右徽J識單元測試三、單元選取原則1.單元功能測試;2.單元接口測試;3.單元內部數(shù)據(jù)流測試;4.單元邏輯路徑測試;5.單元可預見異?;虺鲥e條件測試?;顒右徽J識單元測試四、單元測試的任務由于單元測試所測試的不僅僅是代碼,還要測試接口、局部數(shù)據(jù)結構、獨立路徑、邊界條件等,因此單元測試的主要依據(jù)是軟件詳細設計說明書?;顒右徽J識單元測試五、單元測試的依據(jù)單元測試過程中應綜合應用各種黑盒測試和白盒測試方法。使用黑盒測試方法對被測單元進行功能測試,使用白盒測試方法對被測單元進行代碼測試。活動二單元測試策略一、單元測試方法1.靜態(tài)測試技術靜態(tài)測試技術是指不運行被測程序本身。僅通過分析或檢查源程序的語法、結構、接口等來檢查程序的正確性,對需求規(guī)格說明書、軟件設計說明書、源程序作結構分析,流程圖分析、符號執(zhí)行來找錯。靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量等。它可以由人工進行,充分發(fā)揮人的邏輯思維優(yōu)勢,也可以借助軟件工具自動進行?;顒佣卧獪y試策略一、單元測試方法1.靜態(tài)測試技術靜態(tài)測試技術是指不運行被測程序本身。僅通過分析或檢查源程序的語法、結構、接口等來檢查程序的正確性,對需求規(guī)格說明書、軟件設計說明書、源程序作結構分析,流程圖分析、符號執(zhí)行來找錯。靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量等。它可以由人工進行,充分發(fā)揮人的邏輯思維優(yōu)勢,也可以借助軟件工具自動進行。活動二單元測試策略一、單元測試方法2.動態(tài)測試技術動態(tài)測試技術是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率和健壯性等性能。這種技術山3部分組成:構造測試實例、執(zhí)行程序、分析程序的輸出結果。且前,動態(tài)測試也是測試工作的主要方式。活動二單元測試策略一、單元測試方法靜態(tài)測試和動態(tài)測試應配合使用。靜態(tài)測試的代碼分析結果適用于所有可能的運行情況,而動態(tài)測試由于總是針對特殊取值的測試,因此僅能測試到程序的特定屬性,即保證被測組件在其測試平臺上對于特定輸入是有效的。活動二單元測試策略一、單元測試方法單元本身并不是一個獨立的程序,往往需要基于被測單元的接口開發(fā)相應的驅動模塊和樁模塊。因此,單元測試環(huán)境包括驅動模塊和樁模塊?;顒佣卧獪y試策略二、單元測試環(huán)境1.驅動模塊和樁模塊定義(1)驅動模塊是模擬被測單元的上級模塊,用于接收測試數(shù)據(jù)、啟動被測模塊和輸出結果。(2)樁模塊是模擬被測單元所調用的模塊。有時,需要使用子模塊的接口,才能做少量數(shù)據(jù)操作,并驗證和打融入最的信息,然后返回。樁模塊不包含原模塊的所有細節(jié)?;顒佣卧獪y試策略二、單元測試環(huán)境2.驅動模塊和樁模塊的使用條件設計驅動模塊和樁模塊時,一方面應考思到測試結論的有效性決定于單元測試環(huán)境下模擬目標環(huán)境(程序)執(zhí)行的精確度,即設計驅動模塊和樁模塊時應能慮到測試用例執(zhí)行應滿足的所有環(huán)境因素。另方面,也應充分考慮到測試過程的選代性,使得驅動模塊和樁模塊在回歸測試中能夠不經(jīng)修改直接使用,提高重用性,進而提高回歸測試效率?;顒佣卧獪y試策略二、單元測試環(huán)境3.構建單元測試環(huán)境建立單元測試的環(huán)境,需完成以下工作:構造最小運行調度系統(tǒng),即構造被測單元的驅動模塊;模擬被測單元的接口,即構造被測單元調用的樁模塊;模擬生成測試數(shù)據(jù)及狀態(tài),即測試驅動程序,為被測單元運行準備動態(tài)環(huán)境?;顒佣卧獪y試策略二、單元測試環(huán)境4.驅動模塊的設計在多數(shù)的實際應用中,驅動模塊的設計可根據(jù)其定義得到,步驟如下。(1)接收測試的輸入數(shù)據(jù)。實現(xiàn)方式是將輸入數(shù)據(jù)寫在測試程序中,更好的策略是通過外部調用的方式從數(shù)據(jù)文件中依次讀入數(shù)據(jù)。(2)將數(shù)據(jù)傳遞給被測單元,從而啟動被測單元實現(xiàn)方式是調用被測單元,同時利用參數(shù)傳遞將輸入數(shù)據(jù)傳給被測單元。(3)打印和輸出相關結果,判斷測試是通過還是失敗。利用結果的比較來判斷,在允許的誤差條件下,一致的結果表明測試通過,否則視為測試失敗。執(zhí)行結果可以直接輸出到屏幕?;顒佣卧獪y試策略二、單元測試環(huán)境5.樁模塊的設計(1)完成原單元的基本功能,即針對特定的輸入可以輸出正確的結果,注意:這里所謂的完成功能其實并非真正在模塊內部去執(zhí)行某些復雜的邏輯判斷或計算過程,而是簡單的批量打印而已,只是將固定的某些執(zhí)行結果簡單輸出。(2)能夠被正確調用,即符合正確的輸入條件,包括個數(shù)、參數(shù)類型順序等與被模擬單元完全一致。(3)有返回值。若有返回值,則應針對特定輸入返回與被模擬單元完全一致的結果。(4)不包含原單元的所有細節(jié)。原單元的輸入情況可能是無限多的,所謂模擬意味將僅挑選式中典型的輸入(如邊界),給出己知的輸出結果。活動二單元測試策略二、單元測試環(huán)境6.測試驅動程序的設計測試驅動程序是通過測試用例來驅動被測單元,以便于觀察測試用例執(zhí)行結果,查找缺陷的代碼段。簡單地說,測試驅動是能夠執(zhí)行測試用例或測試套包的軟件程序或測試工具。測試驅動程序的設計可從以下方面來考慮:(1)利用已有的測試用例,接收測試數(shù)據(jù)。(2)將測試數(shù)據(jù)傳遞給被測單元。(3)輸出測試用例的執(zhí)行結果?;顒佣卧獪y試策略二、單元測試環(huán)境1.單元代碼測試的方式實現(xiàn)對單元代碼測試的方式主要包括:(1)在開發(fā)源代碼中直接加入斷點(和調試比較相似);(2)通過調用被測函數(shù)輸入一些測試數(shù)據(jù),觀察實際執(zhí)行情況與預期情況之間的差異;(3)針對被測對象編寫專門的測試代碼,并專門對這些代碼進行組織和管理?;顒佣卧獪y試策略三、單元測試的設計2.單元測試的原則編寫單元測試代碼是,應遵循以下基本原則。(1)不要將測試用例的執(zhí)行結果輸出到屏幕;(2)將測試代碼與開發(fā)代碼分開;(3)所有測試方法以test開頭,測試代碼分組放置;(4)在一個獨立的測試中避免多重聲明;(5)測試正確的事情?;顒佣卧獪y試策略三、單元測試的設計1.要測試以下程序段的正確性,需要構造被測單元的驅動模塊。 intmax(intx,inty){ intz; if(x>y) z=x; else z=y; returnz; }任務實施根據(jù)被測單元的情況,需要編寫驅動模塊,通過給定實參5和8來調用被測單元。需要創(chuàng)建一個類(Test.java),并將被測單元封裝在獨立的類中(Max.java),在測試類中創(chuàng)建被測類的對象,以實現(xiàn)測試程序和被測程序的分離,通過調用被測類對象的方法進行測試。任務實施被測單元封裝為一個類(Max.java)publicclassMax{ intmax(intx,inty){ intz; if(x>y) z=x; else z=y; returnz; }}任務實施驅動模塊的類(Test.java)publicclassTest{ publicstaticvoidmain(String[]args){ intresult; Maxm=newMax(); result=m.max(5,8); System.out.println("5和8的最大值是:"+result); }}任務實施運行結果如圖所示:任務實施2.對下面的程序進行單元測試。publicstaticvoidmain(String[]args){ intyear,leap1; Scannerinput=newScanner(System.in); System.out.println("請輸入一個年份:"); year=input.nextInt(); leap1=leapyear(year); if(leap1==1) System.out.println(year+"isaleapyear."); else System.out.println(year+"isnotaleapyear."); }任務實施被測單元是一個主函數(shù),需要構造被測單元的樁模塊,通過調用一個leapyear(intyear),使被測單元能順利調用,從而測試該單元的正確性。任務實施import

java.util.Scanner;public

classLeapYear{

static

intleapyear(intyear){

if(year%4==0&&year%100!=0||year%400==0)

return1;

else

return0; }

public

static

voidmain(String[]args){

intyear,leap1; Scannerinput=newScanner(System.in); System.out.println("請輸入一個年份:"); year=input.nextInt(); LeapYearm=newLeapYear(); leap1=m.leapyear(year);

if(leap1==1) System.out.println(year+"isaleapyear.");

else System.out.println(year+"isnotaleapyear."); }

}任務實施運行結果如下圖任務實施任務二使用JUnit測試Java程序●本任務通過對一個簡單計算器的加、減、乘、除功能的測試代碼的編寫,了解單元測試的基本概念和JUnit單元測試工具。掌握JUnit的安裝,熟悉使用Eclipse和JUnit進行簡單測試用例編寫和運行的過程,為后面的JUnit框架的理解和使用提供基礎?!馢Unit是Java最主要的單元測試框架,對單元測試的基本概念的學習和理解,能幫助學生進步理解JUnit的基本概念。在理解JUnit的基礎上,要求學生進步掌握使用Eclipse進行單元測試代碼的編寫流程。任務陳述活動一認識JUnit

在Java編程環(huán)境中,JUnit是一個已經(jīng)被多數(shù)Java程序員采用和實證的優(yōu)秀測試框架。開發(fā)人員只需要按照JUnit的約定編寫測試代碼,就可以對被測試代碼進行測試。JUnit是1997年由ErichGamma(GoF之一)和KentBeck(XP和refactor先驅者之一)創(chuàng)建的。1999年以來,JUnit已經(jīng)發(fā)展成業(yè)界標準的Java測試和設計工具。一、認識JUnit活動一認識JUnit1.使用斷言方法判斷期望值和實際值差異,返回Boolean值;2.測試驅動設備使用共同的初始化變量或者實例。3.測試包結構便于組織和集成運行。4.支持圖形交互模式和文本交互模式。二、JUnit特性活動一認識JUnit1.JUnit是開源工具;2.JUnit可以將測試代碼和產(chǎn)品代碼分開;3.JUnit的測試代碼非常容易編寫且功能強大;4.JUnit自動檢測測試結果并且提供及時的反饋;5.易于集成;6.便于組織。四、JUnit優(yōu)點三、JUnit優(yōu)點活動一認識JUnit1.只需要到JUnit的官方網(wǎng)站下載JUnit最新版本的安裝程序。2.將下載得到的junit.jar加入CLASSPATH環(huán)境變量即可使用JUnit,如果使用Eclipse工具,則可以在項目屬性的BuildPath中單擊“Add

Library”選項,選擇JUnit的jar包即可。四、JUnit下載和安裝活動二

JUnit的基本應用public

classCalculator{

public

intadd(inta,intb){

returna+b; }

public

intsubstrate(inta,intb){

returna-b; }

public

intmultiply(inta,intb){

returna*b; }

public

intdivide(inta,intb){

returna/b; }}一、編寫計算器程序的代碼活動二JUnit的基本應用packagejunit.demo;import

staticorg.junit.Assert.*;importorg.junit.Test;public

classCalculatorTest{ @Test

public

voidtestAdd(){ Calculatorcalculator=newCalculator();

intresult=calculator.add(3,2);

assertEquals(5,result); }}二、編寫計算器程序的測試代碼活動二

JUnit的基本應用第1行,定義測試類所在的包。第2、3行,引入JUnit測試類必需的jar包。第4行,定義一個測試類CalculatorTest.第5行,用JUnit的注解@Test,將下面的方法標注為一個測試方法。第6行,定義一個測試方法,方法名可自定義,一般以test開頭。第7行,遵循對象測試的風格,創(chuàng)建對象。第8行,

測試Calculator的add的方法。第9行,用斷言比較調用add方法之后的返回值和期望值是否致。二、編寫計算器程序的測試代碼活動二

JUnit的基本應用JUnit

4測試用例的基本結構:1.JUnit一個測試用例對應一個測試方法,即一個函數(shù)。要創(chuàng)建測試,必須編寫對應的測試方法。2.JUnit4的測試是基于注解的,每個測試方法前面都要加上@Test注解。3.每個測試方法要做一些斷言,

斷言主要用于比較實際結果與期望結果是否相符。上面的例子中,如果返回值不等于5,斷言失敗,整個測試用例運行的結果就是失敗,否則表示這個測試用例通過。二、編寫計算器程序的測試代碼活動二

JUnit的基本應用JUnit4提供3種不同方式的運行器執(zhí)行測試用例:文本方式;AWT方式;Swing方式。三、運行測試用例活動二

JUnit的基本應用JUnit

4測試用例的基本結構:1.JUnit一個測試用例對應一個測試方法,即一個函數(shù)。要創(chuàng)建測試,必須編寫對應的測試方法。2.JUnit4的測試是基于注解的,每個測試方法前面都要加上@Test注解。3.每個測試方法要做一些斷言,

斷言主要用于比較實際結果與期望結果是否相符。上面的例子中,如果返回值不等于5,斷言失敗,整個測試用例運行的結果就是失敗,否則表示這個測試用例通過。三、編寫計算器程序的測試代碼1.JUnit的下載與安裝JUnit工具的jar包可以從下載。JUnit是以jar文件的形式發(fā)布的,其中包括了所有必需的類。安裝JUnit,就是把jar文件放到編譯器能夠找到的地方,如果不使用IDE,而是從命令行直接調用JDK,則必須上CLASSPATH包含JUnit的jar包所在的路徑。簡單來說,就是解壓下載的壓縮文件到指定文件夾,并將JUnit.jar包加入到CLASSPATH中即可完成安裝。任務實施2.對一個Java類進行單元測試。該類為Caculator,實現(xiàn)簡單的加、減、乘、除等功能,實現(xiàn)用Eclipse編寫JUnit單元測試。任務實施(1)在Eclipse中引入JUnit任務實施(1)在Eclipse中引入JUnit任務實施(2)在Java項目中編寫被測單元程序任務實施(3)JUnit測試用例編寫任務實施(3)JUnit測試用例編寫任務實施(4)JUnit測試用例編寫任務實施任務三使用Junit測試自動售貨機程序●本任務將利用經(jīng)典的自動售貨機案例,完成Junit4的測試用例的編寫,掌握JUnit的測試框架和核心類:TestCase、TestSuite、TestRunner和Assert,以及它們如何共同工作,完成測試用例的編寫和運行。JUnit4是一個全新的框架,它充分利用了Java5的注解,使測試更為簡單快捷。通過對本任務的學習,充分理解JUnit4的注解的應用。任務陳述活動一Junit核心類1.TestCase

(測試用例)——擴展

了JUnit的TestCase

類的類。它以testXxxx方法的形式包含一個或多個測試。一個測試用例把具有公共行為的測試歸入一組。2.TestSuite

(測試集合)——一組測試。

一個測試集

合是把多個相關測試歸入一組的便捷方式。3.TestRuner(測試運行器)執(zhí)行testsuite的程序。JUnit提供了幾個測試運行器,可以用它們來執(zhí)行你的測試。一、JUnit核心類與接口活動一Junit核心類一、JUnit核心類與接口類/借口功能Assert當條件成立時,asset方法保持沉默,但若條件不成立就拋出異常TestResult包含了測試中發(fā)生的所有錯誤或者失敗Test可以運行Test并把結果傳遞給TestResultTestListener測試中若產(chǎn)生事件(開始、結束、錯誤、失敗)會通知TestListenerTestCaseTestCase定義了可以用于運行多項測試的環(huán)境(或者說固定設備)TestSuiteTestSuite運行組TestCase

(它們可能包含其他TestSuite),它是Test的組合BaseTestRunnerestRunner是用來啟動測試的用戶界面,Base

TestRunner是所有TestRunner的超類活動一Junit核心類1.Teat接口Test接口是TestCase、TestSuite的共同接口,用于運行測試和收集測試結果。它的run(TestResultresult)萬法用來運行Test,并且將結果保存到TestResult.2.TestResult(測試結果)TestResult類收集TestCase的執(zhí)行結果,并報告測試結果。若測試成功,那么TestResult代碼是正確的,進度條就是綠色顯示,否則TestResult就會報告失敗,并輸出失敗測試的數(shù)目和它的堆棧軌跡。3.TestListener接口JUnit框架提供了TestListener接口,以幫助對象訪問TestResult并創(chuàng)建有用的報告。TestRunner實現(xiàn)了TestListener,很多特定的JUnit擴展也實現(xiàn)了TestListener.可以有任意數(shù)量的TestListener向JUnit框架注冊,這些TestListener可以根據(jù)TestResult提供的信息做它們需要做的任何事情。二、Junit其他接口活動一Junit核心類1.用fixture管理資源fixture是運行一個或多個測試所需的公用資源或數(shù)據(jù)集合。TestCase通過setUp和tearDown方法來自動創(chuàng)建和銷毀fixture。TestCase會在運行每個測試之前調用setUp,并且在每個測試完成之后調用tearDown。把不止一個測試方法放進同一個TestCase的一個重要理由就是可以共享fixture代碼。三、TestCase活動一Junit核心類2.TestCase成員三、TestCase方法描述countTestCase計算run()所執(zhí)行的TestCase的數(shù)目createResult創(chuàng)建默認的TestResult對象getName獲得TestCase的名字run運行TestCase并收集TestRrsult中的結果runBare運行測試序列(比如自動發(fā)現(xiàn)test方法)runTest重載以運行測試并斷言其狀態(tài)setName設置TestCase的名字setup初始化資源配置tearDown清除資產(chǎn)配置toString返回TextCase的字符串表示活動一Junit核心類Assert是JUnit框架的一個靜態(tài)類,包含一組靜態(tài)的測試方法,用于期望值和實際值比較是否正確。如果測試失敗,Assert類就會拋出一個AssertionFailedError異常。四、Junit斷言方法描述assertTrue斷言條件為真。若不滿足,方法拋出帶有相應的信息(如果有)的AssertionFailedError異常assertFalse斷言條件為假。若不滿足,方法拋出帶有相應的信息(若果有)的AssertionFailedError異常assertEquals斷言兩個對象相等。若不滿足,方法拋出帶有相應的信息(如果有)的AssertionFailedError異常assertNotNull斷言對象不為null。若不滿足,方法拋出帶有相應的信息(如果有)的AssertionFailedError異常assertNull斷言對象為null。若不滿足,方法拋出帶有相應的信息(如果有)的AssertionFailedError異常assertSame斷言兩個引用指向同一個對象。若不滿足,方法拋出帶有相應的信息(如果有)的AssertionFailedError異常assertNotSame斷言兩個指向不同對象。若不滿足,方法拋出帶有相應的信息(如果有)的AssertionFailedError異常fail強制測試失敗,并給出指定信息活動二

JUnit測試套件默認的TestSuite會掃描測試類,找出所有以test開頭的方法。默認的TestSuite在內部為每個testXxxx方法都創(chuàng)建一個TestCase的實例,要調用的方法的名稱會傳遞給TestCase的構造函數(shù),這樣每個實例就有個獨一無二的標識。一、運行自動的Suite活動二

JUnit測試套件PublicstaticTestsuite()

{ReturnnewTestSuite(CalculatorTest.class);}這就相當于:

PublicstaticTestsuite()

{TestSuitesuite=newTestSuite();Suite.addTest(newCalculatorTest("testAdd"));return

suite;}一、運行自動的Suite活動二

JUnit測試套件publicclassAllTestsextendsTestCase{publicstaticTestsuite()(TestSuitesuite=newTestSuite(AllTests.class.getName());Suite.addTestSuite(CalculatorTest.class);returnsuite;}}二、編寫自己的TestSuite活動二

JUnit測試套件1.測試用例必須是公有類(public);2.測試用例必須繼承于TestCase類;3.測試用例的測試方法必須是公有的(public);4.測試用例的測試方法必須被聲明為void;5.測試用例的測試方法的前置名詞必須是test;6.測試用例的測試方法無任何傳遞參數(shù)。二、編寫自己的TestSuite活動三探究JUnit4Java注解(Annotation)的使用方法是@注解名,能通過簡單的詞語來實現(xiàn)一些功能。一、認識JUnit4注解活動三探究JUnit4在JUnit中常用的注解有@Test、@Ignore、@BeforeClass、@AfterClass、@Before、@After、@Runwith、@Parameters。二、常用注釋活動三探究JUnit41.@TestTesl表明這是一個測試方法可以隨意取,在Junit中將會自動被執(zhí)行。對于方法的聲明有如下要求:名字可以隨意取,但返回值必須為void類型,而且不能有任何參數(shù)。如果違反這些規(guī)定,會在運行時拋出一個異常。例如:@Test publicvoidtestAdd(){ Calculatorcalculator=newCalculator(); intresult=calculator.add(3,4); assertEquals(9,result); }二、常用注釋活動三探究JUnit42.@Before初始化方法,在任何一個測試執(zhí)行之前必須執(zhí)行的代碼,跟3.X中的setUp()方法具有相同功能。格式:@Beforepublicvoidmethod(),例如:@Before publicvoidsetUp()throwsException{ Calculatorcalculator=newCalculator(); }二、常用注釋活動三探究JUnit43.@After釋放資源,在任何測試執(zhí)行之后需要進行的收尾工作。跟3.X中的tearDown()方法具有相同的功能。格式:@Afterpublicvoidmethod(),例如:@After publicvoidtearDown()throwsException{ calculator=null; }二、常用注釋活動三探究JUnit44.@BeforeClass針對所有測試,在所有測試方法執(zhí)行前執(zhí)行一次,且必須為publicstaticvoid,此注解為4.X新增功能。格式:@BeoreClasspublicvoidmethod(),例如:@BeforeClass publicstaticvoidsetUpBeforeClass()throwsException{ System.out.println("@BeforeClassiscalled!"); }二、常用注釋活動三探究JUnit45.@AfterClass針對所有測試,在所有測試方法執(zhí)行結束執(zhí)行一次,且必須為publicstaticvoid,此注解為4.X新增功能。格式:@AfterClasspublicvoidm

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論