不知道大家日常开发会不会写单元测试用例,也是我们常说的小型测试,我们通常会为一些可测试的模块或类单独写一个测试类,如果我们测试类比较多的话我们就可能会声明一个测试套件类来统一运行多个测试类,本文就简单说一下如何来定义和声明测试套件类.
JUnit中声明套件类主要是通过注解来实现的,这里有以下几个注解需要关注下:
-
@RunWith
(注解生命该类为一个测试入口(该类中不包含其他方法) -
@Category
(用于指定分类执行) -
@Suite.SuiteClasse
(用于指定套件运行的测试类)
下面是我们声明小型测试套件类的实践:
** 声明小型测试接口**
/**
* 单元测试用例归属的策略,Small表示小粒度、原子粒度的用例。 一个用例只验证一个原子的功能,如测试util类方法或者dao层的方法.
*
* @author devilwwj
*/
public interface Small {
}
创建单元测试类
@Category(Small.class)
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}
注意在类声明了Small的类型。
声明runner
/**
* 单元测试套件类.
*
* @author devilwwj
* @since 2017/7/26
*/
@RunWith(Categories.class)
@Categories.IncludeCategory(Small.class)
@Suite.SuiteClasses({ExampleUnitTest.class, ExampleUnitTest2.class})
public class SmallTestRunner {
}
以后我们只需要在@Suite.SuiteClasses
声明新增的单元测试类即可。
执行效果如下:
类似的针对大、中、冒泡等类型的分类也可以通过这种方式来做。