您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Junit常用注解詳細(xì)說明
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2015/5/27 14:44:55 ] 推薦標(biāo)簽:單元測試

  Java注解((Annotation)的使用方法是@注解名 ,能通過簡單的詞語來實(shí)現(xiàn)一些功能。在junit中常用的注解有
  @Test、@Ignore、@BeforeClass、@AfterClass、@Before、@After、@Runwith、@Parameters
  以下是相關(guān)的介紹和使用說明:
  一.@Test
  在junit3中,是通過對測試類和測試方法的命名來確定是否是測試,且所有的測試類必須繼承junit的測試基類。在junit4中,定義一個 測試方法變得簡單很多,只需要在方法前加上@Test行了。
  注意:測試方法必須是public void,即公共、無返回?cái)?shù)據(jù)?梢話伋霎惓。
  二.@Ignore
  有時(shí)候我們想暫時(shí)不運(yùn)行某些測試方法測試類,可以在方法前加上這個注解。在運(yùn)行結(jié)果中,junit會統(tǒng)計(jì)忽略的用例數(shù),來提醒你。但是不建議經(jīng)常這么做,因?yàn)檫@樣的壞處時(shí),容易忘記去更新這些測試方法,導(dǎo)致代碼不夠干凈,用例遺漏。
  三.@BeforeClass
  當(dāng)我們運(yùn)行幾個有關(guān)聯(lián)的用例時(shí),可能會在數(shù)據(jù)準(zhǔn)備或其它前期準(zhǔn)備中執(zhí)行一些相同的命令,這個時(shí)候?yàn)榱俗尨a更清晰,更少冗余,可以將公用的部分提取出來,放在一個方法里,并為這個方法注解@BeforeClass。意思是在測試類里所有用例運(yùn)行之前,運(yùn)行一次這個方法。例如創(chuàng)建數(shù)據(jù)庫連接、讀取文件等。
  注意:方法名可以任意,但必須是public static void,即公開、靜態(tài)、無返回。這個方法只會運(yùn)行一次。
  四.@AfterClass
  跟@BeforeClass對應(yīng),在測試類里所有用例運(yùn)行之后,運(yùn)行一次。用于處理一些測試后續(xù)工作,例如清理數(shù)據(jù),恢復(fù)現(xiàn)場。
  注意:同樣必須是public static void,即公開、靜態(tài)、無返回。這個方法只會運(yùn)行一次。
  五.@Before
  與@BeforeClass的區(qū)別在于,@Before不止運(yùn)行一次,它會在每個用例運(yùn)行之前都運(yùn)行一次。主要用于一些獨(dú)立于用例之間的準(zhǔn)備工作。比如兩個用例都需要讀取數(shù)據(jù)庫里的用戶A信息,但第一個用例會刪除這個用戶A,而第二個用例需要修改用戶A。那么可以用@BeforeClass創(chuàng)建數(shù)據(jù)庫連接。用@Before來插入一條用戶A信息。
  注意:必須是public void,不能為static。不止運(yùn)行一次,根據(jù)用例數(shù)而定。
  六.@After
  與@Before對應(yīng)。
  七.@Runwith
  首先要分清幾個概念:測試方法、測試類、測試集、測試運(yùn)行器。
  其中測試方法是用@Test注解的一些函數(shù)。測試類是包含一個或多個測試方法的一個**Test.java文件,測試集是一個suite,可能包含多個測試類。測試運(yùn)行器則決定了用什么方式偏好去運(yùn)行這些測試集/類/方法。
  而@Runwith是放在測試類名之前,用來確定這個類怎么運(yùn)行的。也可以不標(biāo)注,會使用默認(rèn)運(yùn)行器。
  常見的運(yùn)行器有:
  1. @RunWith(Parameterized.class) 參數(shù)化運(yùn)行器,配合@Parameters使用junit的參數(shù)化功能
  2.@RunWith(Suite.class)
  @SuiteClasses({ATest.class,BTest.class,CTest.class})
  測試集運(yùn)行器配合使用測試集功能
  3.@RunWith(JUnit4.class)
  junit4的默認(rèn)運(yùn)行器
  4.@RunWith(JUnit38ClassRunner.class)
  用于兼容junit3.8的運(yùn)行器
  5.一些其它運(yùn)行器具備更多功能。例如@RunWith(SpringJUnit4ClassRunner.class)集成了spring的一些功能
  八.@Parameters
  用于使用參數(shù)化功能。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd