首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

TestNG 使 Java 单元测试轻而易举(3)

TestNG 使 Java 单元测试轻而易举(3)

定义测试组 TestNG 另外一个有趣的特性是其定义测试组的能力。每个测试方法都可以与一个或多个组相关联,但可以选择只运行某个测试组。要把测试加入测试组,只要把组指定为               @Test标注的参数,使用的语法如下:
1
@Test(groups = {"tests.string"})




在这个具体的例子中,您声明:标注的方法属于 tests.string组。因为参数            groups是一个数组,所以可以指定多个组,组名之间用逗号分隔。例如,在示例应用程序中,您可以为 String、Number            以及 boolean 创建不同的测试,然后如清单 4 所示配置 TestNG, 有选择地运行它们 .
清单 4.            带有不同组的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="My suite">
<test name="Simple example">
   <groups>
     <run>
        <include name="tests.string" />
        <include name="tests.math" />
        <exclude name="tests.boolean"/>
     </run>
   </groups>
   <classes>
        .... list classes here....
   </classes>
</test>
</suite>




显然,当运行不同的测试组时,HTML 报告能够在单一列表中显示所有测试,也可以在独立的列表中显示每个组的测试,从而能够立即理解问题的来源。
配置方法 使用 TestNG,不仅可以指定测试方法,还可以用专门的标注 @Configuration指定类中的其他特定方法,这些方法叫做               配置方法。配置方法有四种类型:
  • beforeTestClass方法在类实例化之后,但是在测试方法运行之前执行。
  • afterTestClass方法在类中的所有测试方法执行之后执行。
  • beforeTestMethod方法在类中的任何测试方法执行之前执行。
  • afterTestMethod方法在类中的每个测试方法执行之后执行。
图 2 进一步描述了测试类的生命周期。
图 2. 测试类的生命周期 清单 5            演示了配置方法的一些示例。请注意,如果您使用组,那么配置方法也必须属于某个组。而且,配置方法的四种类型彼此之间不是互斥的,所以可以把方法定义成同时属于一种或多种配置方法类型。(作为例子,请参阅清单            5 中的 aroundTestMethods()方法)。
清单 5.            配置方法示例
1
2
3
4
5
6
7
8
9
10
11
@Configuration(beforeTestClass = true, groups = {"tests.workflow"})
public void setUp()
{
  System.out.println("Initializing...");
}
@Configuration(afterTestMethod = true, beforeTestMethod = true
   , groups = {"tests.workflow"})
public void aroundTestMethods()
{
  System.out.println("Around Test");
}




TestNG 中的配置方法是 JUnit 的 setUp()和            tearDown()方法的增强版;它们的主要目的是为测试创建正确的执行上下文,并在测试用例执行之后刷新数据。
返回列表