最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

junit4教程junit4.5官方下載

 更新時(shí)間:2008年09月11日 21:22:34   作者:  
前提:本文假設(shè)讀者已經(jīng)具有使用JUnit 4以前版本的經(jīng)驗(yàn)。
官方下載地址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è)試用例的編寫(xiě)。

先簡(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)修飾類(lèi)名、方法名、變量名。修飾的作用描述這個(gè)數(shù)據(jù)是做什么用的,差不多和public描述這個(gè)數(shù)據(jù)是公有的一樣。想具體了解可以看Core Java2。廢話(huà)不多說(shuō)了,直接進(jìn)入正題。

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

我們要測(cè)試add這個(gè)方法,我們寫(xiě)單元測(cè)試得這么寫(xiě):
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);
}
}

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


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

如果上面那個(gè)單元測(cè)試在JUnit 4中寫(xiě)就不會(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è)試?,F(xiàn)在,通過(guò)@Test元數(shù)據(jù)中的expected屬性。expected屬性的值是一個(gè)異常的類(lèi)型

@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è)試方法。

相關(guān)文章

  • Java并發(fā)框架中的AQS詳細(xì)解析

    Java并發(fā)框架中的AQS詳細(xì)解析

    這篇文章主要介紹了Java并發(fā)框架中的AQS詳細(xì)解析,之前說(shuō)鎖的升級(jí)的時(shí)候,說(shuō)到了自旋鎖會(huì)空轉(zhuǎn)幾次嘗試等待獲取資源,其實(shí)這一系列的動(dòng)作是有一個(gè)規(guī)范的這個(gè)規(guī)范叫做同步發(fā)生器AbstractQueuedSynchronizer ,簡(jiǎn)稱(chēng)AQS,需要的朋友可以參考下
    2024-01-01
  • Java文件快速copy復(fù)制實(shí)例代碼

    Java文件快速copy復(fù)制實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Java文件快速copy復(fù)制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 詳解Java中的數(shù)組與字符串相關(guān)知識(shí)

    詳解Java中的數(shù)組與字符串相關(guān)知識(shí)

    這篇文章主要介紹了詳解Java中的數(shù)組與字符串相關(guān)知識(shí),包括操作字符串的一些基本方法列舉,需要的朋友可以參考下
    2015-09-09
  • Java實(shí)現(xiàn)貪吃蛇大作戰(zhàn)小游戲(附源碼)

    Java實(shí)現(xiàn)貪吃蛇大作戰(zhàn)小游戲(附源碼)

    今天給大家?guī)?lái)的是小項(xiàng)目是 基于Java+Swing+IO流實(shí)現(xiàn) 的貪吃蛇大作戰(zhàn)小游戲。實(shí)現(xiàn)了界面可視化、基本的吃食物功能、死亡功能、移動(dòng)功能、積分功能,并額外實(shí)現(xiàn)了主動(dòng)加速和鼓勵(lì)機(jī)制,需要的可以參考一下
    2022-07-07
  • Spring實(shí)現(xiàn)類(lèi)私有方法的幾個(gè)問(wèn)題(親測(cè)通用解決方案)

    Spring實(shí)現(xiàn)類(lèi)私有方法的幾個(gè)問(wèn)題(親測(cè)通用解決方案)

    現(xiàn)實(shí)的業(yè)務(wù)場(chǎng)景中,可能需要對(duì)Spring的實(shí)現(xiàn)類(lèi)的私有方法進(jìn)行測(cè)試。本文給大家分享Spring實(shí)現(xiàn)類(lèi)私有方法面臨的幾個(gè)問(wèn)題及解決方案,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • Spring cloud Gateway簡(jiǎn)介及相關(guān)配置方法

    Spring cloud Gateway簡(jiǎn)介及相關(guān)配置方法

    這篇文章主要介紹了Spring cloud Gateway簡(jiǎn)介及相關(guān)配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Java解析json報(bào)文實(shí)例解析

    Java解析json報(bào)文實(shí)例解析

    這篇文章主要介紹了Java解析json報(bào)文實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot實(shí)現(xiàn)二維碼掃碼登錄的原理及項(xiàng)目實(shí)踐

    SpringBoot實(shí)現(xiàn)二維碼掃碼登錄的原理及項(xiàng)目實(shí)踐

    本文主要介紹了SpringBoot實(shí)現(xiàn)二維碼掃碼登錄的原理及項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 關(guān)于spring中aop的注解實(shí)現(xiàn)方法實(shí)例詳解

    關(guān)于spring中aop的注解實(shí)現(xiàn)方法實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于spring中aop的注解實(shí)現(xiàn)方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起看看吧。
    2017-08-08
  • 使用vue3.x+vite+element-ui+vue-router+vuex+axios搭建項(xiàng)目

    使用vue3.x+vite+element-ui+vue-router+vuex+axios搭建項(xiàng)目

    因?yàn)関ue3出了一段時(shí)間了,element也出了基于vue3.x版本的element-plus,這篇文章就拿他們搭建一個(gè)項(xiàng)目,希望能給你帶來(lái)幫助
    2021-08-08

最新評(píng)論

海宁市| 鹤岗市| 四川省| 汶上县| 泰顺县| 宁乡县| 茌平县| 乾安县| 韶关市| 扎赉特旗| 华坪县| 藁城市| 即墨市| 古田县| 东阿县| 治县。| 申扎县| 舞钢市| 东明县| 东丽区| 昆明市| 全椒县| 安福县| 九龙城区| 平安县| 左云县| 丹阳市| 京山县| 图木舒克市| 弥勒县| 沂水县| 偏关县| 罗定市| 呼和浩特市| 教育| 湾仔区| 宿迁市| 新野县| 庆阳市| 苏州市| 怀集县|