a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Java > 正文

junit4教程junit4.5官方下載

2019-11-26 16:20:20
字體:
來源:轉載
供稿:網友
官方下載地址http://sourceforge.net/project/showfiles.php?group_id=15278&package_id=12472
JUnit4是JUnit框架有史以來的最大改進,其主要目標便是利用Java5的Annotation特性簡化測試用例的編寫。

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

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

我們要測試add這個方法,我們寫單元測試得這么寫:
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中的靜態導入,這個相對來說就很簡單,只要在import關鍵字后面加上static關鍵字,就可以把后面的類的static的變量和方法導入到這個類中,調用的時候和調用自己的方法沒有任何區別。


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

如果上面那個單元測試在JUnit 4中寫就不會這么復雜。代碼如下:
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已經不會霸道的要求你必須繼承自TestCase了,而且測試方法也不必以test開頭了,只要以@Test元數據來描述即可。
從上面的例子可以看到在JUnit 4中還引入了一些其他的元數據,下面一一介紹:
@Before:
使用了該元數據的方法在每個測試方法執行之前都要執行一次。

@After:
使用了該元數據的方法在每個測試方法執行之后要執行一次。

注意:@Before和@After標示的方法只能各有一個。這個相當于取代了JUnit以前版本中的setUp和tearDown方法,當然你還可以繼續叫這個名字,不過JUnit不會霸道的要求你這么做了。

@Test(expected=*.class)
在JUnit4.0之前,對錯誤的測試,我們只能通過fail來產生一個錯誤,并在try塊里面assertTrue(true)來測試。現在,通過@Test元數據中的expected屬性。expected屬性的值是一個異常的類型

@Test(timeout=xxx):
該元數據傳入了一個時間(毫秒)給測試方法,
如果測試方法在制定的時間之內沒有運行完,則測試也失敗。

@ignore:
該元數據標記的測試方法在測試中會被忽略。當測試的方法還沒有實現,或者測試的方法已經過時,或者在某種條件下才能測試該方法(比如需要一個數據庫聯接,而在本地測試的時候,數據庫并沒有連接),那么使用該標簽來標示這個方法。同時,你可以為該標簽傳遞一個String的參數,來表明為什么會忽略這個測試方法。比如:@lgnore(“該方法還沒有實現”),在執行的時候,僅會報告該方法沒有實現,而不會運行測試方法。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色噜噜网站 | 午夜社区| 国产一区二区影院 | 99久久久精品 | 国产精品成人在线观看 | 国产精品久久久 | 亚洲综合精品 | 久久av一区二区三区亚洲 | 久久综合热 | 精品一区二区三区国产 | 在线播放一区 | 一区二区三区四区免费观看 | 国产精品无码久久久久 | 日韩午夜精品视频 | 国外爱爱视频 | 久久涩| 中文字幕亚洲第一 | 蜜桃视频成人m3u8 | 国产精品久久久久国产a级 日韩在线二区 | 国产精品久久久久婷婷二区次 | 国产九九在线观看 | 久久伊人免费视频 | 亚洲 成人 av | 日韩精品亚洲一区 | 韩日欧美 | 国产午夜精品一区二区三区视频 | 一级毛片视频 | 秋霞精品 | 成人免费视频网站在线看 | 美女隐私视频黄www曰本 | 国产精品黄网站在线观看 | 亚洲精品视频在线 | 凹凸日日摸日日碰夜夜爽孕妇 | 亚洲婷婷免费 | 激情一区二区三区 | 黄色福利| 国产精品久久一区二区三区 | 看毛片网站 | 国产视频精品一区二区三区 | 欧美视频网站 | 在线视频 中文字幕 |