解释型数据源是一个表格式的数据源,SOAtest 将其视为 Java 对象图的关系表示。解释型数据源可以用来帮助创建多个 Java 对象和对象图,这些对象图可以作为 EJB 客户端工具和其他 SOAtest 工具的测试参数输入。有关 EJB 客户端工具的更多消息,请参阅 EJB 客户端

从 Java Bean 的字段生成数据源

若要从 Java Bean 的字段生成数据源:

  1. 请执行以下任一操作:
    • 针对测试套件级别数据源,请选择相应套件节点,然后点击工具栏中的添加数据库
    • 针对项目级别数据源,右键点击相关项目的测试用例浏览器节点,然后选择新建> 数据源
    • 针对全局级别数据源,右键点击测试用例浏览器的全局数据源节点,然后选择新建> 数据源
  2. 选择 Bean Wizard,然后点击下一步。出现 Bean Wizard 对话框。
  3. 完成 Bean Wizard 对话框中的以下选项:
    • 接收站类型:从下拉菜单中选择要创建的表模板的类型。
    • 目标目录:指定表的写入位置。
    • 覆盖现有的文件:指定是否要覆盖现有文件。
    • Java Class:指定要为其创建表格表示形式的类。
    • 跟踪依赖性:为跟踪依赖性选择。选择,系统提示 SOAtest 从您在 Java Class 字段中指定的“根”类为“可访问”的类成员变量类型生成表。
  4. 点击下一步。出现依赖项对话框。
  5. 为下列类生成数据表列表选择所需类型依赖项。
  6. 点击完成,生成表格。这些表将在指定目录中创建,并且每个文件的数据源都将添加到您选择的测试套件中。

解释型数据源表格式

以下是 SOAtest 使用的关系到对象映射的主要概念:

  • 对象是表中的一行。
  • 表有两种类型:
    • 类表
      • 每个类成员变量的列
      • 每个实例的行
    • 集合表
      • 实际对象表和行的列
      • 每个实例的行

对象引用

 每个表中的第一列是对象实例的标识符。可以通过表名、空格、对象标识符来引用对象。标识符列不必一定是行号,只要标识符值在每个表中都是唯一的即可。

值和引用

非原始类的字段值通常如上所述通过对象引用指定。但是,对于原始类型的值,额外的间接级别是不必要且麻烦的。为了适应缩写形式,提供了内置支持,用于使用定义良好的字符串表示形式内联常用类型。引用列中的空单元格将解释为空值。值列针对空单元格将解释为空字符串。

集合

为了支持可变大小的集合,引入了一个集合表。集合表只有一个引用列。集合中的对象由表名、空格、对象标识符引用。

示例

例如,让我们考虑以 CreditCardDO 为根的对象图。CreditCardDO 包含 PersonDO和 AddressDO 的示例,以及 Vector of ActivityDO 类型对象。


public class CreditCardDO extends PaymentMethodDO implements Serializable
{
    protected String ccNumber;    
    protected Date expirationDate;
    protected PersonDO ccHolder;
    protected AddressDO billingAddress;
    protected Vector recentActivity = new Vector();
  
    // set…()/get…() methods omitted
}
public class PaymentMethodDO implements Serializable {
    protected String bankName;
  
    // set…()/get…() methods omitted
}
public class AddressDO implements Serializable {
    protected String streetAddress;    
    protected String city;
    protected int zipCode;
    protected String state;
  
    // set…()/get…() methods omitted
}
public class PersonDO implements Serializable {
    protected String firstName;
    protected String lastName;
  
    // set…()/get…() methods omitted
}
public class ActivityDO implements Serializable {
    private float amount;
    private String description;
  
    // set…()/get…() methods omitted
}

下表说明了如何以表格格式表示上述对象图示例:

Table CreditCardDO.csv

soatest.examples.CreditCardDO
bankName
billingAddress ref
ccHolder ref
ccNumber
expirationDate
recentActivityref 
1SampleBankAddressDO 1PersonDO 1

1234123412341

234

8/31/2005RecentActivities-1

Table AddressDO.csv

soatest.examples.AddressDO
city
state
streetAddress
zipCode
1Los AngelesCA101 E. Huntington Dr.91016

Table PersonDO.csv

soatest.examples.PersonDO
firstName
lastName
DonaldDuck

Table ActivityDO.csv

soatest.examples.ActivityDO
amount
description
soatest.examples.ActivityDO
amount
description
11010 Charge-10
22020 Charge-20
33030 Charge-30
44040 Charge-40
55050 Charge-50
66060 Charge-60
77070 Charge-70
88080 Charge-80
99090 Charge-90
10100100 Charge-100

Table RecentActivities-1.csv

ActivityDO ref
ActivityDO 1
ActivityDO 2
ActivityDO 3
  • No labels