存根行为

存根是一些类,用来提供代码所调用的实际类的替代实现。可以为 Java™ 组件、Enterprise JavaBeans™(EJB)和 Web Service 生成存根。

通常,存根具有下列用途:

可以定义 Java 类的存根,然后在多个测试中复用该存根。一旦创建了存根,就在存根数据表中定义它的行为,或者在与该存根相关联的用户代码类中输入代码。

存根数据表

存根数据表定义存根类的输出行为来作为对特定输入的响应。借助存根数据表,可以通过指定每个存根方法的实际输入和返回值来模拟存根类。在下面的样本房地产应用程序中说明了如何使用存根数据表。

在此应用程序中,正在测试两个类:LenderAppraiser。为名为 Mortgage 的第三个类创建了存根,以便更容易将 LenderAppraiser 类的测试隔离开。下表中总结了这些类和它们的方法:

Lender Appraiser Mortgage
validateCredit getBestMortgageRate getAPR
computeFixed30y    
computeARM30y    

Mortgage 类中的 getAPR 方法具有两个输入参数(pointsscore),并且将返回 rate。如下面用于 Mortgage 类的存根数据表中所示,如果 points 参数等于 1,无论 score 参数的值是多少,rate 输出都将为 5.94%。如果 points 参数等于 2,并且 score 位于 700 到 900 范围内,则 rate 输出为 5.69%。

存根数据表示例

通过使用存根数据表,可以模拟 getAPR 方法的行为。

注: 如果具有重复的输入值,则在左边的数据集中定义的行为将具有优先权。例如,如果第一个数据集中包含的范围是 1 到 20,而第二个数据集中包含的范围是 1 到 10,则存根将从第一个数据集中返回 1 到 20 范围内的指定值,并且会忽略第二个数据集中的值。

存根用户代码类

定义存根行为的另一种方式是将代码添加至与存根一起生成的用户代码类中。通常,在存根数据表中不能执行行为时,应在用户代码类中定义存根行为。例如,可以在下列情况下执行此操作:

添加至特定方法的用户代码类的任何代码都优先于在存根数据表中指定的行为。

具有 Enterprise JavaBeans(EJB)的存根

测试会话 bean 时也可能使用存根。例如,您可能想为尚未完全实现其业务方法的会话 bean 创建存根。因为可以单独测试实体 bean 而不使用存根,所以,在大多数情况不必为实体 bean 创建存根。

EJB 存根在运行时在服务器上部署。当已部署的存根抛出异常时,可预料到是从服务器而不是从实际存根接收到压缩的异常消息。

具有 Web service 的存根

处理 Web service 时也可能使用存根。通过创建 Web Service 存根,可以更好地隔离被测 Web Service 或测试使用尚未完全实现的 Web service 的组件。

Web service 存根在运行时在服务器上部署。当已部署的存根抛出异常时,可预料到是从服务器而不是从实际存根接收到压缩的异常消息。

相关概念
存根数据表
组件测试和 Java 编辑器
相关任务
为 Java 组件创建存根
创建 EJB 的存根
编辑测试套件中的存根
插入初始化点
插入验证操作
插入计时约束
反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.