成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JUnit測(cè)試框架簡(jiǎn)介

開(kāi)發(fā) 后端
JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個(gè)回歸測(cè)試框架(regression testing framework)。

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個(gè)回歸測(cè)試框架(regression testing framework)。Junit測(cè)試是程序員測(cè)試,即所謂白盒測(cè)試,因?yàn)槌绦騿T知道被測(cè)試的軟件如何(How)完成功能和完成什么樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進(jìn)行自動(dòng)測(cè)試了。

junit特性:

JUnit是一個(gè)開(kāi)放源代碼的Java測(cè)試框架,用于編寫和運(yùn)行可重復(fù)的測(cè)試。他是用于單元測(cè)試框架體系xUnit的一個(gè)實(shí)例(用于java語(yǔ)言)。它包括以下特性:

1、用于測(cè)試期望結(jié)果的斷言(Assertion)

2、用于共享共同測(cè)試數(shù)據(jù)的測(cè)試工具

3、用于方便的組織和運(yùn)行測(cè)試的測(cè)試套件

4、圖形和文本的測(cè)試運(yùn)行器

junit優(yōu)點(diǎn):

另外junit是在極限編程和重構(gòu)(refactor)中被極力推薦使用的工具,因?yàn)樵趯?shí)現(xiàn)自動(dòng)單元測(cè)試的情況下可以大大的提高開(kāi)發(fā)的效率,但是實(shí)際上編寫測(cè)試代碼也是需要耗費(fèi)很多的時(shí)間和精力的,那么使用這個(gè)東東好處到底在哪里呢?筆者認(rèn)為是這樣的:

1、對(duì)于極限編程而言

要求在編寫代碼之前先寫測(cè)試,這樣可以強(qiáng)制你在寫代碼之前好好的思考代碼(方法)的功能和邏輯,否則編寫的代碼很不穩(wěn)定,那么你需要同時(shí)維護(hù)測(cè)試代碼和實(shí)際代碼,這個(gè)工作量就會(huì)大大增加。因此在極限編程中,基本過(guò)程是這樣的:構(gòu)思-> 編寫測(cè)試代碼-> 編寫代碼-> 測(cè)試,而且編寫測(cè)試和編寫代碼都是增量式的,寫一點(diǎn)測(cè)一點(diǎn),在編寫以后的代碼中如果發(fā)現(xiàn)問(wèn)題可以較塊的追蹤到問(wèn)題的原因,減小回歸錯(cuò)誤的糾錯(cuò)難度。

2、對(duì)于重構(gòu)而言

其好處和極限編程中是類似的,因?yàn)橹貥?gòu)也是要求改一點(diǎn)測(cè)一點(diǎn),減少回歸錯(cuò)誤造成的時(shí)間消耗。

3、對(duì)于非以上兩種情況

 

 

junit我們?cè)陂_(kāi)發(fā)的時(shí)候使用junit寫一些適當(dāng)?shù)臏y(cè)試也是有必要的,因?yàn)橐话阄覀円彩切枰帉憸y(cè)試的代碼的,可能原來(lái)不是使用的junit,如果使用junit,而且針對(duì)接口(方法)編寫測(cè)試代碼會(huì)減少以后的維護(hù)工作,例如以后對(duì)方法內(nèi)部的修改(這個(gè)就是相當(dāng)于重構(gòu)的工作了)。另外就是因?yàn)閖unit有斷言功能,如果測(cè)試結(jié)果不通過(guò)會(huì)告訴我們那個(gè)測(cè)試不通過(guò),為什么,而如果是想以前的一般做法是寫一些測(cè)試代碼看其輸出結(jié)果,然后再由自己來(lái)判斷結(jié)果使用正確,使用junit的好處就是這個(gè)結(jié)果是否正確的判斷是它來(lái)完成的,我們只需要看看它告訴我們結(jié)果是否正確就可以了,在一般情況下會(huì)大大提高效率。

安裝JUnit:

安裝很簡(jiǎn)單,先到以下地址下載一個(gè)最新的zip包:

http://www.junit.org JUnit的網(wǎng)站,從該網(wǎng)站可以下載JUnit,并找到相關(guān)資料

下載完以后解壓縮到你喜歡的目錄下,假設(shè)是JUNIT_HOME,然后將JUNIT_HOME下的junit.jar包加到你的系統(tǒng)的CLASSPATH環(huán)境變量中,對(duì)于IDE環(huán)境,對(duì)于需要用到的junit的項(xiàng)目增加到lib中,其設(shè)置不同的IDE有不同的設(shè)置,這里不多講。

JUnit最佳實(shí)踐:

Martin Fowler說(shuō)過(guò):“當(dāng)你試圖打印輸出一些信息或調(diào)試一個(gè)表達(dá)式時(shí),寫一些測(cè)試代碼來(lái)替代那些傳統(tǒng)方法。”一開(kāi)始,你會(huì)發(fā)現(xiàn)你總是要?jiǎng)?chuàng)建一些新的Fixture,而且測(cè)試似乎使你的編程速度慢了下來(lái)。然而不久之后,你會(huì)發(fā)現(xiàn)你重復(fù)使用相同的Fixture,而且新的測(cè)試通常只涉及添加一個(gè)新的測(cè)試方法。

你可能會(huì)寫許多測(cè)試代碼,但你很快就會(huì)發(fā)現(xiàn)你設(shè)想出的測(cè)試只有一小部分是真正有用的。你所需要的測(cè)試是那些會(huì)失敗的測(cè)試,即那些你認(rèn)為不會(huì)失敗的測(cè)試,或你認(rèn)為應(yīng)該失敗卻成功的測(cè)試。

我們前面提到過(guò)測(cè)試是一個(gè)不會(huì)中斷的過(guò)程。一旦你有了一個(gè)測(cè)試,你就要一直確保其正常工作,以檢驗(yàn)?zāi)闼尤氲男碌墓ぷ鞔a。不要每隔幾天或最后才運(yùn)行測(cè)試,每天你都應(yīng)該運(yùn)行一下測(cè)試代碼。這種投資很小,但可以確保你得到可以信賴的工作代碼。你的返工率降低了,你會(huì)有更多的時(shí)間編寫工作代碼。

不要認(rèn)為壓力大,就不寫測(cè)試代碼。相反編寫測(cè)試代碼會(huì)使你的壓力逐漸減輕,因?yàn)橥ㄟ^(guò)編寫測(cè)試代碼

 

,你對(duì)類的行為有了確切的認(rèn)識(shí)。你會(huì)更快地編寫出有效率地工作代碼。

下面是一些具體的編寫測(cè)試代碼的技巧或較好的實(shí)踐方法:

1. 不要用TestCase的構(gòu)造函數(shù)初始化Fixture,而要用setUp()和tearDown()方法。

2. 不要依賴或假定測(cè)試運(yùn)行的順序,因?yàn)镴Unit利用Vector保存測(cè)試方法。所以不同的平臺(tái)會(huì)按不同的順序從Vector中取出測(cè)試方法。

3. 避免編寫有副作用的TestCase。例如:如果隨后的測(cè)試依賴于某些特定的交易數(shù)據(jù),就不要提交交易數(shù)據(jù)。簡(jiǎn)單的回滾就可以了。

4. 當(dāng)繼承一個(gè)測(cè)試類時(shí),記得調(diào)用父類的setUp()和tearDown()方法。

5. 將測(cè)試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)

6. 測(cè)試類和測(cè)試方法應(yīng)該有一致的命名方案。如在工作類名前加上test從而形成測(cè)試類名。

7. 確保測(cè)試與時(shí)間無(wú)關(guān),不要依賴使用過(guò)期的數(shù)據(jù)進(jìn)行測(cè)試。導(dǎo)致在隨后的維護(hù)過(guò)程中很難重現(xiàn)測(cè)試。

8. 如果你編寫的軟件面向國(guó)際市場(chǎng),編寫測(cè)試時(shí)要考慮國(guó)際化的因素。不要僅用母語(yǔ)的Locale進(jìn)行測(cè)試。

9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡(jiǎn)潔。

10.測(cè)試要盡可能地小,執(zhí)行速度快。

11.不要硬性規(guī)定數(shù)據(jù)文件的路徑。

12.利用Junit 的自動(dòng)異常處理書寫簡(jiǎn)潔的測(cè)試代碼

事實(shí)上在Junit 中使用try-catch 來(lái)捕獲異常是沒(méi)有必要的,Junit 會(huì)自動(dòng)捕獲異常。那些沒(méi)有被捕獲的異常就被當(dāng)成錯(cuò)誤處理。

13. 充分利用Junit 的assert/fail 方法

assertSame()用來(lái)測(cè)試兩個(gè)引用是否指向同一個(gè)對(duì)象

assertEquals()用來(lái)測(cè)試兩個(gè)對(duì)象是否相等

14. 確保測(cè)試代碼與時(shí)間無(wú)關(guān)

15. 使用文檔生成器做測(cè)試文檔。

JUnit和ant結(jié)合

ant 提供了兩個(gè) target : junit 和 junitreport 運(yùn)行所有 測(cè)試用例 ,并生成 html 格式的報(bào)表

具體操作如下:

1.將 junit.jar 放在 ANT_HOMElib 目錄下

2.修改 build.xml ,加入如下 內(nèi)容:

-------------- One or more tests failed, check the report for detail... -----------------------------

運(yùn)行 這個(gè) target ,ant 會(huì)運(yùn)行每個(gè) TestCase,在 report 目錄下就有了 很多 TEST*.xml 和 一些網(wǎng)頁(yè)打開(kāi) report 目錄下的 index.html 就可以看到很直觀的測(cè)試運(yùn)行報(bào)告,一目了然。

在Eclipse中開(kāi)發(fā)、運(yùn)行JUnit測(cè)試相當(dāng)簡(jiǎn)單。因?yàn)镋clipse本身集成了JUnit相關(guān)組件,并對(duì)JUnit的運(yùn)行提供了無(wú)縫的支持。

【編輯推薦】

責(zé)任編輯:金賀 來(lái)源: 百度百科
相關(guān)推薦

2009-06-19 16:26:51

JUnit測(cè)試骨架

2012-09-13 11:08:53

IBMdw

2013-01-07 13:54:17

Android開(kāi)發(fā)JUnit單元測(cè)試

2009-09-23 09:20:09

白盒測(cè)試Pex框架

2009-07-15 17:49:09

Jython開(kāi)發(fā)

2012-02-07 09:08:50

Feed4JUnitJava

2011-08-11 13:02:43

Struts2Junit

2011-07-25 15:55:21

Sencha ToucHtml 5

2012-03-13 16:14:09

JavaJUnit

2020-12-30 07:08:27

Java方法測(cè)試

2009-06-02 17:18:10

hibernate框架簡(jiǎn)介

2009-07-03 14:52:32

JSP開(kāi)發(fā)框架FastJSP

2009-08-19 04:15:00

線性鏈表

2017-01-14 23:26:17

單元測(cè)試JUnit測(cè)試

2017-01-16 12:12:29

單元測(cè)試JUnit

2011-11-18 15:18:41

Junit單元測(cè)試Java

2011-07-06 14:01:33

Monkey

2009-12-07 14:51:57

WCF框架

2021-01-07 14:06:30

Spring BootJUnit5Java

2010-06-03 09:13:35

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美二区在线 | 国产一区二区三区四区五区加勒比 | 亚洲精品电影网在线观看 | 免费看黄色国产 | 免费一二区 | 伊人久久精品 | 国产一级片免费视频 | 亚洲欧美另类在线 | 九色91视频 | 日韩三级电影一区二区 | se婷婷 | 九色91视频 | 欧美中国少妇xxx性高请视频 | 伊人成人免费视频 | 亚洲 欧美 在线 一区 | 伊人久久综合 | 亚洲一区二区三区四区在线观看 | 欧美性video 精品亚洲一区二区 | www.五月天婷婷.com | 视频一区 国产精品 | 一区二区三区网站 | 亚洲一区二区三区在线 | 一级黄色淫片 | av网址在线| 日韩黄色免费 | 丝袜天堂| 欧美日韩久久久久 | 日韩av啪啪网站大全免费观看 | 欧美高清视频 | 国内精品久久久久久久 | 在线国产一区二区 | 中文二区| aaa国产大片| 中国人pornoxxx麻豆 | 欧美一区免费 | 玖玖在线免费视频 | 久久久做 | 国产免费播放视频 | 国产综合久久 | 99精品视频免费观看 | 国产精品精品3d动漫 |