junit常用註解詳細說明

junit常用註解詳細說明
  
    
Java註解((Annotation)的使用方法是@註解名 ,能通過簡單的詞語來實現一些功能。在junit中常用的註解有@Test、@Ignore、@BeforeClass、@AfterClass、@Before、@After、@Runwith、@Parameters

以下是相關的介紹和使用說明:

一.@Test

在junit3中,是通過對測試類和測試方法的命名來確定是否是測試,且所有的測試類必須繼承junit的測試基類。在junit4中,定義一個 測試方法變得簡單很多,只需要在方法前加上@Test就行了。

注意:測試方法必須是public void,即公共、無返回數據。可以拋出異常。

二.@Ignore

有時候我們想暫時不運行某些測試方法\測試類,可以在方法前加上這個註解。在運行結果中,junit會統計忽略的用例數,來提醒你。但是不建議經常這麼做,因爲這樣的壞處是,容易忘記去更新這些測試方法,導致代碼不夠乾淨,用例遺漏。

三.@BeforeClass

當我們運行幾個有關聯的用例時,可能會在數據準備或其它前期準備中執行一些相同的命令,這個時候爲了讓代碼更清晰,更少冗餘,可以將公用的部分提取出來,放在一個方法裏,併爲這個方法註解@BeforeClass。意思是在測試類裏所有用例運行之前,運行一次這個方法。例如創建數據庫連接、讀取文件等。

注意:方法名可以任意,但必須是public static void,即公開、靜態、無返回。這個方法只會運行一次。

四.@AfterClass

跟@BeforeClass對應,在測試類裏所有用例運行之後,運行一次。用於處理一些測試後續工作,例如清理數據,恢復現場。

注意:同樣必須是public static void,即公開、靜態、無返回。這個方法只會運行一次。

五.@Before

與@BeforeClass的區別在於,@Before不止運行一次,它會在每個用例運行之前都運行一次。主要用於一些獨立於用例之間的準備工作。比如兩個用例都需要讀取數據庫裏的用戶A信息,但第一個用例會刪除這個用戶A,而第二個用例需要修改用戶A。那麼可以用@BeforeClass創建數據庫連接。用@Before來插入一條用戶A信息。

注意:必須是public void,不能爲static。不止運行一次,根據用例數而定。

六.@After

與@Before對應。

七.@Runwith

首先要分清幾個概念:測試方法、測試類、測試集、測試運行器。

其中測試方法就是用@Test註解的一些函數。測試類是包含一個或多個測試方法的一個**Test.java文件,測試集是一個suite,可能包含多個測試類。測試運行器則決定了用什麼方式偏好去運行這些測試集/類/方法。

而@Runwith就是放在測試類名之前,用來確定這個類怎麼運行的。也可以不標註,會使用默認運行器。

常見的運行器有:

1. @RunWith(Parameterized.class) 參數化運行器,配合@Parameters使用junit的參數化功能

2.@RunWith(Suite.class)
@SuiteClasses({ATest.class,BTest.class,CTest.class})

測試集運行器配合使用測試集功能

3.@RunWith(JUnit4.class)

junit4的默認運行器

4.@RunWith(JUnit38ClassRunner.class)

用於兼容junit3.8的運行器

5.一些其它運行器具備更多功能。例如@RunWith(SpringJUnit4ClassRunner.class)集成了spring的一些功能

八.@Parameters

用於使用參數化功能。用法詳情見其它博文

來源:http://www.cnblogs.com/1110111abc/archive/2012/10/11/2720225.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章