欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
學(xué)習JUnit
1、幾個(gè)相關(guān)的概念 

白盒測試——把測試對象看作一個(gè)打開(kāi)的盒子,程序內部的邏輯結構和其他信息對測試人員是公開(kāi)的。 

回歸測試——軟件或環(huán)境的修復或更正后的“再測試”,自動(dòng)測試工具對這類(lèi)測試尤其有用。 

單元測試——是最小粒度的測試,以測試某個(gè)功能或代碼塊。一般由程序員來(lái)做,因為它需要知道內部程序設計和編碼的細節。 

JUnit ——是一個(gè)開(kāi)發(fā)源代碼的Java測試框架,用于編寫(xiě)和運行可重復的測試。他是用于單元測試框架體系xUnit的一個(gè)實(shí)例(用于java語(yǔ)言)。主要用于白盒測試,回歸測試。 



2、單元測試概述 

2.1、單元測試的好處 

A、提高開(kāi)發(fā)速度——測試是以自動(dòng)化方式執行的,提升了測試代碼的執行效率。 

B、提高軟件代碼質(zhì)量——它使用小版本發(fā)布至集成,便于實(shí)現人員除錯。同時(shí)引入重構概念,讓代碼更干凈和富有彈性。 

C、提升系統的可信賴(lài)度——它是回歸測試的一種。支持修復或更正后的“再測試”,可確保代碼的正確性。 

2.2、單元測試的針對對象 

A、面向過(guò)程的軟件開(kāi)發(fā)針對過(guò)程。 

B、面向對象的軟件開(kāi)發(fā)針對對象。 

C、可以做類(lèi)測試,功能測試,接口測試(最常用于測試類(lèi)中的方法)。 

2.3、單元測試工具和框架 

目前的最流行的單元測試工具是xUnit系列框架,常用的根據語(yǔ)言不同分為JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。該測試框架的第一個(gè)和最杰出的應用就是由Erich Gamma (《設計模式》的作者)和Kent Beck(XP(Extreme Programming)的創(chuàng )始人 )提供的開(kāi)放源代碼的JUnit。 



3.Junit入門(mén)簡(jiǎn)介 

3.1、JUnit的好處和JUnit單元測試編寫(xiě)原則 

好處: 

A、可以使測試代碼與產(chǎn)品代碼分開(kāi)。 

B、針對某一個(gè)類(lèi)的測試代碼通過(guò)較少的改動(dòng)便可以應用于另一個(gè)類(lèi)的測試。 

C、易于集成到測試人員的構建過(guò)程中,JUnit和Ant的結合可以實(shí)施增量開(kāi)發(fā)。 

D、JUnit是公開(kāi)源代碼的,可以進(jìn)行二次開(kāi)發(fā)。 

C、可以方便地對JUnit進(jìn)行擴展。 

編寫(xiě)原則: 

A、是簡(jiǎn)化測試的編寫(xiě),這種簡(jiǎn)化包括測試框架的學(xué)習和實(shí)際測試單元的編寫(xiě)。 

B、是使測試單元保持持久性。 

C、是可以利用既有的測試來(lái)編寫(xiě)相關(guān)的測試。 

3.2、JUnit的特征 

A、使用斷言方法判斷期望值和實(shí)際值差異,返回Boolean值。 

B、測試驅動(dòng)設備使用共同的初始化變量或者實(shí)例。 

C、測試包結構便于組織和集成運行。 

D、支持圖型交互模式和文本交互模式。 

3.3、JUnit框架組成 

A、對測試目標進(jìn)行測試的方法與過(guò)程集合,可稱(chēng)為測試用例(TestCase)。 

B、測試用例的集合,可容納多個(gè)測試用例(TestCase),將其稱(chēng)作測試包(TestSuite)。 

C、測試結果的描述與記錄。(TestResult) 。 

D、測試過(guò)程中的事件監聽(tīng)者(TestListener)。 

E、每一個(gè)測試方法所發(fā)生的與預期不一致?tīng)顩r的描述,稱(chēng)其測試失敗元素(TestFailure) 

F、JUnit Framework中的出錯異常(AssertionFailedError)。 

JUnit框架是一個(gè)典型的Composite模式:TestSuite可以容納任何派生自Test的對象;當調用TestSuite對象的run()方法是,會(huì )遍歷自己容納的對象,逐個(gè)調用它們的run()方法。(可參考《程序員》2003-6期)。 

3.4、JUnit的安裝和配置 

JUnit安裝步驟分解: 

http://download.sourceforge.net/junit/中下載JUnit包并將Junit壓縮包解壓到一個(gè)物理目錄中(例如C:\Junit3.8.1)。   
記錄Junit.jar文件所在目錄名(例如C:\Junit3.8.1\Junit.jar)。 
進(jìn)入操作系統(以Windows2000操作系統為準),按照次序點(diǎn)擊“開(kāi)始 設置 控制面板”。 
在控制面板選項中選擇“系統”,點(diǎn)擊“環(huán)境變量”,在“系統變量”的“變量”列表框中選擇“CLASS-PATH”關(guān)鍵字(不區分大小寫(xiě)),如果該關(guān)鍵字不存在則添加。 
雙擊“CLASS-PATH”關(guān)鍵字添加字符串“C:\Junit3.8.1\Junti.jar”(注意,如果已有別的字符串請在該字符串的字符結尾加上分號“;”),這樣確定修改后Junit就可以在集成環(huán)境中應用了。 
對于IDE環(huán)境,對于需要用到的JUnit的項目增加到lib中,其設置不同的IDE有不同的設置 。 
3.5、JUnit中常用的接口和類(lèi) 

Test接口——運行測試和收集測試結果 

Test接口使用了Composite設計模式,是單獨測試用例 (TestCase),聚合測試模式(TestSuite)及測試擴展(TestDecorator)的共同接口。 
它的public int countTestCases()方法,它來(lái)統計這次測試有多少個(gè)TestCase,另外一個(gè)方法就是public void run( TestResult ),TestResult是實(shí)例接受測試結果, run方法執行本次測試。 
TestCase抽象類(lèi)——定義測試中固定方法 

TestCase是Test接口的抽象實(shí)現,(不能被實(shí)例化,只能被繼承)其構造函數TestCase(string name)根據輸入的測試名稱(chēng)name創(chuàng )建一個(gè)測試實(shí)例。由于每一個(gè)TestCase在創(chuàng )建時(shí)都要有一個(gè)名稱(chēng),若某測試失敗了,便可識別出是哪個(gè)測試失敗。 
TestCase類(lèi)中包含的setUp()、tearDown()方法。setUp()方法集中初始化測試所需的所有變量和實(shí)例,并且在依次調用測試類(lèi)中的每個(gè)測試方法之前再次執行setUp()方法。tearDown()方法則是在每個(gè)測試方法之后,釋放測試程序方法中引用的變量和實(shí)例。 
開(kāi)發(fā)人員編寫(xiě)測試用例時(shí),只需繼承TestCase,來(lái)完成run方法即可,然后JUnit獲得測試用例,執行它的run方法,把測試結果記錄在TestResult之中。 
Assert靜態(tài)類(lèi)——一系列斷言方法的集合 

Assert包含了一組靜態(tài)的測試方法,用于期望值和實(shí)際值比對是否正確,即測試失敗,Assert類(lèi)就會(huì )拋出一個(gè)AssertionFailedError異常,JUnit測試框架將這種錯誤歸入Failes并加以記錄,同時(shí)標志為未通過(guò)測試。如果該類(lèi)方法中指定一個(gè)String類(lèi)型的傳參則該參數將被做為AssertionFailedError異常的標識信息,告訴測試人員改異常的詳細信息。 
JUnit 提供了6大類(lèi)31組斷言方法,包括基礎斷言、數字斷言、字符斷言、布爾斷言、對象斷言。 
其中assertEquals(Object expcted,Object actual)內部邏輯判斷使用equals()方法,這表明斷言?xún)蓚€(gè)實(shí)例的內部哈希值是否相等時(shí),最好使用該方法對相應類(lèi)實(shí)例的值進(jìn)行比較。而assertSame(Object expected,Object actual)內部邏輯判斷使用了Java運算符“==”,這表明該斷言判斷兩個(gè)實(shí)例是否來(lái)自于同一個(gè)引用(Reference),最好使用該方法對不同類(lèi)的實(shí)例的值進(jìn)行比對。asserEquals(String message,String expected,String actual)該方法對兩個(gè)字符串進(jìn)行邏輯比對,如果不匹配則顯示著(zhù)兩個(gè)字符串有差異的地方。ComparisonFailure類(lèi)提供兩個(gè)字符串的比對,不匹配則給出詳細的差異字符。 
TestSuite測試包類(lèi)——多個(gè)測試的組合 

TestSuite類(lèi)負責組裝多個(gè)Test Cases。待測得類(lèi)中可能包括了對被測類(lèi)的多個(gè)測試,而TestSuit負責收集這些測試,使我們可以在一個(gè)測試中,完成全部的對被測類(lèi)的多個(gè)測試。 
TestSuite類(lèi)實(shí)現了Test接口,且可以包含其它的TestSuites。它可以處理加入Test時(shí)的所有拋出的異常。 
TestSuite處理測試用例有6個(gè)規約(否則會(huì )被拒絕執行測試) 
A 測試用例必須是公有類(lèi)(Public) 

B 測試用例必須繼承與TestCase類(lèi) 

C 測試用例的測試方法必須是公有的( Public ) 

D 測試用例的測試方法必須被聲明為Void 

E 測試用例中測試方法的前置名詞必須是test 

F 測試用例中測試方法誤任何傳遞參數 

n TestResult結果類(lèi)和其它類(lèi)與接口 

TestResult結果類(lèi)集合了任意測試累加結果,通過(guò)TestResult實(shí)例傳遞個(gè)每個(gè)測試的Run()方法。TestResult在執行TestCase是如果失敗會(huì )異常拋出 
TestListener接口是個(gè)事件監聽(tīng)規約,可供TestRunner類(lèi)使用。它通知listener的對象相關(guān)事件,方法包括測試開(kāi)始startTest(Test test),測試結束endTest(Test test),錯誤,增加異常addError(Test test,Throwable t)和增加失敗addFailure(Test test,AssertionFailedError t) 
TestFailure失敗類(lèi)是個(gè)“失敗”狀況的收集類(lèi),解釋每次測試執行過(guò)程中出現的異常情況。其toString()方法返回“失敗”狀況的簡(jiǎn)要描述 


3.6、JUnit一個(gè)實(shí)例 

在控制臺中簡(jiǎn)單的范例如下: 
1、寫(xiě)個(gè)待測試的Triangle類(lèi),創(chuàng )建一個(gè)TestCase的子類(lèi)ExampleTest: 
2、 ExampleTest中寫(xiě)一個(gè)或多個(gè)測試方法,斷言期望的結果(注意:以test作為待測試的方法的開(kāi)頭,這樣這些方法可以被自動(dòng)找到并被測試) 
3、 ExampleTest中寫(xiě)一個(gè)suite()方法,它會(huì )使用反射動(dòng)態(tài)的創(chuàng )建一個(gè)包含所有的testXxxx方法的測試套件: 
4、 ExampleTest可以寫(xiě)setUp()、tearDown()方法,以便于在測試時(shí)初始化或銷(xiāo)毀測試所需的所有變量和實(shí)例。(不是必須的) 

5、寫(xiě)一個(gè)main()方法以文本運行器或其它GUI的方式方便的運行測試 

6、編譯ExampleTest,執行測試。 

3.7、Eclipse中JUnit的使用 

Eclipse自帶了一個(gè)JUnit的插件,不用安裝就可以在你的項目中開(kāi)始測試相關(guān)的類(lèi),并且可以調試你的測試用例和被測試類(lèi)。 

使用步驟如下: 

1、新建一個(gè)測試用例,點(diǎn)擊“File->New->Other…菜單項,在彈出的“New”對話(huà)框中選擇”Java->JUnit”,下的TestCase 或TestSuite,就進(jìn)入“New JUnit TestCase”對話(huà)框 

2、在“New JUnit TestCase”對話(huà)框填寫(xiě)相應的欄目,主要有Name(測試用例名),SuperClass(測試的超類(lèi)一般是默認的junit.framework.TestCase),Class Under Test(被測試的類(lèi)),Source Folder(測試用例保存的目錄),Package(測試用例包名),及是否自動(dòng)生成main,setUp,tearDown方法。 

3、如果點(diǎn)擊下面的”Next>”按鈕,你還可以直接勾選你想測試的被測試類(lèi)的方法,Eclipse將自動(dòng)生成與被選方法相應的測試方法,點(diǎn)擊“Fishish”按鈕后一個(gè)測試用例就創(chuàng )建好了。 

4、編寫(xiě)完成你的測試用例后,點(diǎn)擊“Run”按鈕就可以看到運行結果了。 

3.8、JUnit的擴展應用 

以下羅列了些JUnit的擴展應用: 

JUnit + HttpUnit=WEB功能測試工具 
JUnit + hansel =代碼覆蓋測試工具 
JUnit + abbot =界面自動(dòng)回放測試工具 
JUnit + dbunit =數據庫測試工具 
JUnit + junitperf=性能測試工具 

3.9、一些使用JUnit經(jīng)驗 

不要用TestCase的構造函數初始化,而要用setUp()和tearDown()方法。 
不要依賴(lài)或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會(huì )按不同的順序從Vector中取出測試方法。 
避免編寫(xiě)有副作用的TestCase。例如:如果隨后的測試依賴(lài)于某些特定的交易數據,就不要提交交易數據。簡(jiǎn)單的回滾就可以了。 
當繼承一個(gè)測試類(lèi)時(shí),記得調用父類(lèi)的setUp()和tearDown()方法。 
將測試代碼和工作代碼放在一起,一邊同步編譯和更新。 
測試類(lèi)和測試方法應該有一致的命名方案。如在工作類(lèi)名前加上test從而形成測試類(lèi)名。 
確保測試與時(shí)間無(wú)關(guān),不要依賴(lài)使用過(guò)期的數據進(jìn)行測試。導致在隨后的維護過(guò)程中很難重現測試。 
如果你編寫(xiě)的軟件面向國際市場(chǎng),編寫(xiě)測試時(shí)要考慮國際化的因素。不要僅用母語(yǔ)的Locale進(jìn)行測試。 
盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡(jiǎn)潔。 
測試要盡可能地小,執行速度快。 


參考資料與附件 

1. 
http://   www.junit.org JUnit官方網(wǎng)站 

2. 
http://  bbs.51cmm.com 的測試論壇 

3. 
http://  www.uml.org.cn 的軟件測試專(zhuān)欄 

4. 單元測試 《程序員》 2002年7期 

5. JUnit設計模式分析 《程序員》2003年6期 

6. 《軟件測試和JUnit實(shí)踐》 

7. 附件Triangle.java 一個(gè)要測試的類(lèi) 

8. 附件ExampleTest.java 一個(gè)測試用例類(lèi) 





Triangle.java 

/** 

* this is Triangle class 

* @author liujun 

*/ 

public class Triangle 



//定義三角形的三邊 

protected long lborderA = 0; 

protected long lborderB = 0; 

protected long lborderC = 0; 



//構造函數 

public Triangle(long lborderA,long lborderB,long lborderC) 



this.lborderA = lborderA; 

this.lborderB = lborderB; 

this.lborderC = lborderC; 



/** 

* 判斷是否是三角形 

* 是返回ture;不是返回false 

*/ 

public boolean isTriangle(Triangle triangle) 



boolean isTrue = false; 

//判斷邊界,大于0小于200,出界返回false 

if((triangle.lborderA>0&&triangle.lborderA<200) 

&&(triangle.lborderB>0&&triangle.lborderB<200) 

&&(triangle.lborderC>0&&triangle.lborderC<200)) 



//判斷兩邊之和大于第三邊 

if((triangle.lborderA<(triangle.lborderB+triangle.lborderC)) 

&&(triangle.lborderB<(triangle.lborderA+triangle.lborderC)) 

&&(triangle.lborderC<(triangle.lborderA+triangle.lborderB))) 

isTrue = true; 



return isTrue; 





/** 

* 判斷三角形類(lèi)型 

* 等腰三角形返回字符串“等腰三角形”; 

* 等邊三角形返回字符串“等邊三角形”; 

* 其它三角形返回字符串“不等邊三角形”; 

*/ 

public String isType(Triangle triangle) 



String strType = ""; 

// 判斷是否是三角形 

if(this.isTriangle(triangle)) 



//判斷是否是等邊三角形 if(triangle.lborderA==triangle.lborderB&&triangle.lborderB==triangle.lborderC) 

strType = "等邊三角形"; 

//判斷是否是不等邊三角形 

else if((triangle.lborderA!=triangle.lborderB)&& 

(triangle.lborderB!=triangle.lborderC)&& 

(triangle.lborderA!=triangle.lborderC)) 

strType = "不等邊三角形"; 

else 

strType="等腰三角形"; 



return strType; 







ExampleTest.java 

import junit.framework.*; 

/** 

* Some tests. 



*/ 

public class ExampleTest extends TestCase { 

public Triangle triangle; 

//初始化 

protected void setUp() { 

triangle=new Triangle(10,2,9); 





public static Test suite() { 

return new TestSuite(ExampleTest.class); 



//函數isTriangle()的測試用例 

public void testIsTriangle() { 

assertTrue(triangle.isTriangle(triangle)); 



//函數isType()的測試用例 

public void testIsType() 



assertEquals("這次測試",triangle.isType(triangle),"不等邊三角形"; 





//執行測試 

public static void main (String[] args) { 

//文本方式 

junit.textui.TestRunner.run(suite()); 

//Swingui方式 

//junit.swingui.TestRunner.run(suite().getClass()); 

//awtui方式 

//junit.awtui.TestRunner.run(suite().getClass()); 







以上文章來(lái)自:
http://  dev.csdn.net/develop/article/69/69571.shtm
詳細的入門(mén)教程1)  
http://  dev.csdn.net/develop/article/68/68506.shtm
               (2)  
http://  dev.csdn.net/develop/article/68/68513.shtm 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
junit學(xué)習筆記(一):JUnit的安裝和測試原則
netbeans 中使用Junit
JUnit之TestCase和TestSuite詳解
jsunit原理
Eclipse插件開(kāi)發(fā)之基礎篇(3) 插件的測試與調試
“JUnit4.0 in 10 minutes” learning minutes
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久