测试 Java 方法

方法级别测试把在方法代码中定义的不同条件作为测试目标,并与其它方法隔离开,从而允许您独立测试每个单独的方法。测试重点通常在于确保该方法正确处理它所有可能的输入。可以使用为此目的而提供的方法级别测试模式。要执行类级别测试,通常第一步需要执行方法级别测试。

要测试 Java™ 方法:
  1. 为方法创建测试。

    如果尚未编写代码,而您想采用测试优先设计方法,则在生成测试之前至少必须定义方法特征符。

  2. 使用测试数据表来为方法参数定义简单的值。

    方法的所有方法参数和返回值都会被自动标识为测试数据表中的输入或期望输出。也可以将环境参数(例如,类的全局变量或属性)认为是输入参数或输出参数,但是它们不会自动出现在测试数据表中。要测试这些变量和属性,可以在调用被测方法之前添加初始化点,而在调用被测方法之后添加验证操作。

  3. 确保包含被测方法的组件处于正确的测试状态。

    如果在调用您要测试的方法之前需要调用一些方法来使被测组件处于特定状态,则可以向测试行为脚本中添加方法调用。

    例如,您可能想测试 pop() 方法将对堆栈执行的操作(即,从堆栈顶部除去一项)。但是,为了能够从堆栈中除去一些对象,就必须首先向堆栈中添加一些对象。因此,在调用被测方法之前,通常需要调用一些方法来满足先决条件。

  4. 运行测试。

    运行测试以确保一切工作正常。如果报告了故障,则使用“测试数据比较器”来帮助您了解测试结果。如果您还是不了解结果,则应使用调试器。保持重新运行测试,直到它成功为止。

  5. 使用数据分区技术定义几个数据集。

    在使用简单的参数值定义测试之后,为测试提供更多满足条件的值就显得很重要。一种定义测试值的有效方式是对已标识的所有参数执行数据分区。根据此数据分区,使用测试数据表来创建您认为必要的任意数量数据集。

    另外,可以通过包括值的集合和范围来扩大测试覆盖率。但是,您必须认识到,在数据集中定义的每个值都被看作单个测试,而随着单个测试的数目增大,测试执行时间也就会相应延长。

  6. 重新运行测试。

    您定义的期望值与观察到的实际值之间仍然可能会存在一定的差异。这可能是由不适当的输入、不适当的输出或者被测组件的缺陷造成的。要对此进行故障诊断,可使用调试器和“测试资源管理器”视图。

  7. 确定测试覆盖率。

    要确定测试覆盖率,转至“概要分析”透视图中的“覆盖率”视图,并对刚才定义的测试进行概要分析。如果并未包括所有行,则应尝试扩大所包括的数据的范围,添加一些新的数据集,或者定义新的测试。可以在联机帮助中找到有关监视代码覆盖的详细信息。

    要决定添加哪些数据集,应标识未包括的代码行。这些行通常与代码中的判定(例如,if 语句)相关。因为条件始终都被求值为 false,所以,通常都不包括跟在判定后面的代码块。要包括此代码块,应标识正确的参数值并添加具有这些值的数据集。

有关描述如何测试方法的更深入示例,请参阅数据分区技术
相关概念
测试策略
Java 子系统
基于状态的测试技术
相关任务
测试 Java 类
反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.