测试数据表

测试数据表允许您定义在运行测试时可以使用的测试输入和期望输出数据。测试数据表与测试行为脚本是同步的,因此,您对代码所作的修改就会反映在测试数据表中,反之亦然。

因为每个测试数据表都映射至测试代码中的特殊测试用例(JUnit 测试方法),所以为每个测试方法创建了单独的测试数据表。当您使用测试行为代码时,在将光标从一个单元格移至另一个单元格时,测试数据表视图将自动更新。当您首次打开测试行为代码时,不会显示测试数据表,直到您将光标移至代码中的一种测试方法为止。
注: 要使测试数据表和测试行为脚本如所期望的那样同步,确保启动项目 > 自动构建选项。单击 “保存”按钮 保存以强制同步。

以下屏幕捕获显示测试数据表的示例。测试数据表的图示

测试数据表中的每一行都表示代码中的一个对象或表达式,每一列都表示一个数据集(或等价类)。每个数据集列分成两半,一半用于存放输入值,另一半用于存放期望的输出值。期望输出包括返回值、异常以及专门为输出标记的任何参数。

测试数据表提供内容辅助,在您按 Ctrl+Space 时它将自动补全某些单元格中的内容。它还会自动验证语法和数据类型,从而保证您输入的数据在语法上是正确的。
注: 如果测试不能进行编译,则会自动关闭语法验证。

借助测试数据表,可以执行下列任务:

以表达式、集合、范围和数据池的形式提供测试数据

对于可以出现在赋值语句右边的任何语法有效的表达式,可以将它作为表达式输入到测试数据表中。这些表达式包括基本类型、字符串(用双引号引起来)、变量引用、构造函数和方法调用。

还可以插入要用作测试输入、期望输出和返回值的集合和范围。测试数据表包含它自己的集合和范围编辑器,用于定义集合和范围。只需在表单元格中单击右键,然后单击定义集合或者定义范围。注意,不使用集合或范围编辑器,就无法在单元格中输入集合或范围。集合在数据表中以花括号({ })和定义集合所需的所有逗号分隔的值显示。范围在数据表中以逗号分隔的值(用方括号([ ])括起来)显示。

测试数据表还可以包括至数据池的链接。数据池是由基本数据类型或其相应包装器类型组成的相关数据记录的集合。数据池中的每个变量都被测试数据表解释为一个集合。可以使用数据池编辑器编辑数据池,通过双击数据池链接可以打开数据池编辑器。

将元素添加至数组

在测试数据表中除了使用表达式、范围、集合和对象以外,还可以使用数组。数组是基本元素或对象元素的有序列表的容器。数组可以是一维的,也可以是多维的;即,它们可以包含其它数组。在测试数据表中,数组是分层显示的,数组中的每个元素都出现在它所属的行中,并嵌套在表示数组的那一行下面。数组中的每个元素都显示了它自己的下标,可以独立地检索和更改这些元素。这样,数组中的第一个元素显示为 [0],第二个元素显示为 [1],依此类推。

为对象数据类型的属性提供测试数据

基于基本类型(int、char、double 和 long 等等)、合并的基本类型(例如,Integer 或 Double)或 String 的自变量可以作为测试数据表中的单个行来实现可视化。然而,具有多个定义属性的对象不能在测试数据表的单个行中实现可视化。这些复杂对象是在测试数据表的若干行中分层表示的。

单击测试数据表中任何包含对象的单元格时,可以从用来定义对象的方法列表中进行选择。可以根据一个或多个构造函数或一组或多组对象属性来定义对象。当从列表中选择一项时,用来表示对象的行将展开,以显示已经选择的定义属性。

将数据分配到数据集中

数据集(或等价类)是一组输入值,它们全部都应该调用同一行为。数据集可帮助您将数据分配到逻辑单元中,您的代码应该采用同一种方式来处理这些逻辑单元。测试数据表中的每个数据集都包含用于存放输入值的一列和用于存放期望输出值的另一列。

每个数据集都为一个或多个测试运行提供值。如果测试数据表中有三个数据集,则至少将执行三次相同的测试行为。(如果将集合和范围用作测试数据表中的值,则对于集合或范围中的每个值都将进行测试运行)。

使用子类来初始化和测试对象

测试数据表中包含一个类型列,可以编辑该列,从而使接口类型变量或者带有继承类的类型变量可具有用作实现类或子类的数据。例如,假定有一个名为 drawCalendar 的方法,该方法具有单个类型为 Calendar 的自变量,而该自变量又具有 GregorianCalendarLunarCalendar 子类。如果想定义一组传递 GregorianCalendar 类型的对象的测试,则需要编辑自变量的类型字段。当您编辑类型时,原始的自变量类型就会显示在方法特征符中。

指定数据集中的断点

当正在调试测试时,在测试数据表中定义断点非常有用。以调试方式运行测试时,断点将使程序的执行在设置了断点的位置被暂挂。可以在测试中的三个位置设置断点:
  • 在 Java 编辑器的左标尺中:此断点使执行在测试行为脚本中的相应行处暂挂。
  • 在测试数据表的左标尺中。当遇到相应的操作时,此断点暂挂执行。
  • 在测试数据表的数据集标题中:当遇到相应的数据集时,此断点暂挂执行。
要设置断点,双击相应的标尺或位置,或者右键单击并在上下文菜单中选择切换断点
相关概念
数据集
数据分区技术
表达式
测试生成过程
存根数据表
相关任务
定义集合
定义范围
将元素添加至数组
链接至数据池
为对象数据类型的属性提供测试数据
使用子类来初始化和测试对象
选择期望异常
反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.