麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Java > 正文

junit4教程junit4.5官方下載

2019-11-26 16:20:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
官方下載地址http://sourceforge.net/project/showfiles.php?group_id=15278&package_id=12472
JUnit4是JUnit框架有史以來(lái)的最大改進(jìn),其主要目標(biāo)便是利用Java5的Annotation特性簡(jiǎn)化測(cè)試用例的編寫。

先簡(jiǎn)單解釋一下什么是Annotation,這個(gè)單詞一般是翻譯成元數(shù)據(jù)。元數(shù)據(jù)是什么?元數(shù)據(jù)就是描述數(shù)據(jù)的數(shù)據(jù)。也就是說(shuō),這個(gè)東西在Java里面可以用來(lái)和public、static等關(guān)鍵字一樣來(lái)修飾類名、方法名、變量名。修飾的作用描述這個(gè)數(shù)據(jù)是做什么用的,差不多和public描述這個(gè)數(shù)據(jù)是公有的一樣。想具體了解可以看Core Java2。廢話不多說(shuō)了,直接進(jìn)入正題。

我們先看一下在JUnit 3中我們是怎樣寫一個(gè)單元測(cè)試的。比如下面一個(gè)類:
public class AddOperation {
public int add(int x,int y){
return x+y;
}
}

我們要測(cè)試add這個(gè)方法,我們寫單元測(cè)試得這么寫:
import junit.framework.TestCase;
import static org.junit.Assert.*;
public class AddOperationTest extends TestCase{

public void setUp() throws Exception {
}

public void tearDown() throws Exception {
}

public void testAdd() {
System.out.println(/"add/");
int x = 0;
int y = 0;
AddOperation instance = new AddOperation();
int expResult = 0;
int result = instance.add(x, y);
assertEquals(expResult, result);
}
}

可以看到上面的類使用了JDK5中的靜態(tài)導(dǎo)入,這個(gè)相對(duì)來(lái)說(shuō)就很簡(jiǎn)單,只要在import關(guān)鍵字后面加上static關(guān)鍵字,就可以把后面的類的static的變量和方法導(dǎo)入到這個(gè)類中,調(diào)用的時(shí)候和調(diào)用自己的方法沒(méi)有任何區(qū)別。


我們可以看到上面那個(gè)單元測(cè)試有一些比較霸道的地方,表現(xiàn)在:
1.單元測(cè)試類必須繼承自TestCase。
2.要測(cè)試的方法必須以test開(kāi)頭。

如果上面那個(gè)單元測(cè)試在JUnit 4中寫就不會(huì)這么復(fù)雜。代碼如下:
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

/**
*
* @author bean
*/
public class AddOperationTest extends TestCase{

public AddOperationTest() {
}

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@Test
public void add() {
System.out.println(/"add/");
int x = 0;
int y = 0;
AddOperation instance = new AddOperation();
int expResult = 0;
int result = instance.add(x, y);
assertEquals(expResult, result);
}

}
我們可以看到,采用Annotation的JUnit已經(jīng)不會(huì)霸道的要求你必須繼承自TestCase了,而且測(cè)試方法也不必以test開(kāi)頭了,只要以@Test元數(shù)據(jù)來(lái)描述即可。
從上面的例子可以看到在JUnit 4中還引入了一些其他的元數(shù)據(jù),下面一一介紹:
@Before:
使用了該元數(shù)據(jù)的方法在每個(gè)測(cè)試方法執(zhí)行之前都要執(zhí)行一次。

@After:
使用了該元數(shù)據(jù)的方法在每個(gè)測(cè)試方法執(zhí)行之后要執(zhí)行一次。

注意:@Before和@After標(biāo)示的方法只能各有一個(gè)。這個(gè)相當(dāng)于取代了JUnit以前版本中的setUp和tearDown方法,當(dāng)然你還可以繼續(xù)叫這個(gè)名字,不過(guò)JUnit不會(huì)霸道的要求你這么做了。

@Test(expected=*.class)
在JUnit4.0之前,對(duì)錯(cuò)誤的測(cè)試,我們只能通過(guò)fail來(lái)產(chǎn)生一個(gè)錯(cuò)誤,并在try塊里面assertTrue(true)來(lái)測(cè)試。現(xiàn)在,通過(guò)@Test元數(shù)據(jù)中的expected屬性。expected屬性的值是一個(gè)異常的類型

@Test(timeout=xxx):
該元數(shù)據(jù)傳入了一個(gè)時(shí)間(毫秒)給測(cè)試方法,
如果測(cè)試方法在制定的時(shí)間之內(nèi)沒(méi)有運(yùn)行完,則測(cè)試也失敗。

@ignore:
該元數(shù)據(jù)標(biāo)記的測(cè)試方法在測(cè)試中會(huì)被忽略。當(dāng)測(cè)試的方法還沒(méi)有實(shí)現(xiàn),或者測(cè)試的方法已經(jīng)過(guò)時(shí),或者在某種條件下才能測(cè)試該方法(比如需要一個(gè)數(shù)據(jù)庫(kù)聯(lián)接,而在本地測(cè)試的時(shí)候,數(shù)據(jù)庫(kù)并沒(méi)有連接),那么使用該標(biāo)簽來(lái)標(biāo)示這個(gè)方法。同時(shí),你可以為該標(biāo)簽傳遞一個(gè)String的參數(shù),來(lái)表明為什么會(huì)忽略這個(gè)測(cè)試方法。比如:@lgnore(“該方法還沒(méi)有實(shí)現(xiàn)”),在執(zhí)行的時(shí)候,僅會(huì)報(bào)告該方法沒(méi)有實(shí)現(xiàn),而不會(huì)運(yùn)行測(cè)試方法。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91av在线国产| 国产一级一国产一级毛片 | 久久久久久久久久久国产精品 | 天天舔夜夜操 | 久久精品一级片 | 国产欧美日韩视频在线观看 | 久色一区| 欧日韩在线视频 | 国产成人羞羞视频在线 | 91精品国产九九九久久久亚洲 | 久久精品99久久久久久2456 | 国产 日韩 亚洲 欧美 | 黄色一级片免费在线观看 | 大片毛片| 色就操| 国产精品美女一区二区 | 成人性视频欧美一区二区三区 | 国产精品hd免费观看 | 国产精品成aⅴ人片在线观看 | 曰韩一二三区 | 国产午夜精品一区二区三区嫩草 | 他也色在线视频 | 久久影院国产精品 | 天天躁狠狠躁夜躁2020挡不住 | 国产高潮好爽受不了了夜色 | 国产亚洲精品yxsp | 日韩精品中文字幕在线观看 | 国产91亚洲精品久久久 | 国产中文av在线 | 欧美精品亚洲人成在线观看 | 欧美一级黄视频 | 日本大片在线播放 | 亚洲日韩中文字幕一区 | 99精品视频一区二区三区 | 中文字幕在线观看视频www | 97超级碰碰人国产在线观看 | 国产日产精品久久久久快鸭 | 日韩剧情片 | 国产精品久久久乱弄 | 男女生羞羞视频网站在线观看 | 看免费毛片 |