不知道大家日常開發(fā)會(huì)不會(huì)寫單元測(cè)試用例,也是我們常說(shuō)的小型測(cè)試,我們通常會(huì)為一些可測(cè)試的模塊或類單獨(dú)寫一個(gè)測(cè)試類,如果我們測(cè)試類比較多的話我們就可能會(huì)聲明一個(gè)測(cè)試套件類來(lái)統(tǒng)一運(yùn)行多個(gè)測(cè)試類,本文就簡(jiǎn)單說(shuō)一下如何來(lái)定義和聲明測(cè)試套件類.
JUnit中聲明套件類主要是通過(guò)注解來(lái)實(shí)現(xiàn)的,這里有以下幾個(gè)注解需要關(guān)注下:
-
@RunWith(注解生命該類為一個(gè)測(cè)試入口(該類中不包含其他方法) -
@Category(用于指定分類執(zhí)行) -
@Suite.SuiteClasse(用于指定套件運(yùn)行的測(cè)試類)
下面是我們聲明小型測(cè)試套件類的實(shí)踐:
** 聲明小型測(cè)試接口**
/**
* 單元測(cè)試用例歸屬的策略,Small表示小粒度、原子粒度的用例。 一個(gè)用例只驗(yàn)證一個(gè)原子的功能,如測(cè)試util類方法或者dao層的方法.
*
* @author devilwwj
*/
public interface Small {
}
創(chuàng)建單元測(cè)試類
@Category(Small.class)
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}
注意在類聲明了Small的類型。
聲明runner
/**
* 單元測(cè)試套件類.
*
* @author devilwwj
* @since 2017/7/26
*/
@RunWith(Categories.class)
@Categories.IncludeCategory(Small.class)
@Suite.SuiteClasses({ExampleUnitTest.class, ExampleUnitTest2.class})
public class SmallTestRunner {
}
以后我們只需要在@Suite.SuiteClasses聲明新增的單元測(cè)試類即可。
執(zhí)行效果如下:
這里寫圖片描述
類似的針對(duì)大、中、冒泡等類型的分類也可以通過(guò)這種方式來(lái)做。