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

从 Java Bean 的字段生成数据源

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

  1. 请执行以下任一操作:
    • 针对测试套件级别数据源,请选择所需的套测试件节点,然后单击 Add Database 工具栏按钮。



    • 针对项目级别数据源,右键单击相关项目的 Test Case Explorer 节点,然后选择 Add New> Data Source
    • 针对全局级别数据源,右键单击测试用例资源管理器的 Global Data Sources 节点,然后选择 Add New> Data Source
  2. 选择 Bean Wizard ,然后单击 Next。将显示 Bean Wizard 对话框。



  3. 完成 Bean Wizard 对话框中的以下选项:
    • Destination Type: 从下拉菜单中选择要创建的表模板的类型。
    • Destination Directory: 指定表的写入位置。
    • Write Over Existing Files: 指定是否要覆盖现有文件。
    • Java Class: 指定要为其创建表格表示形式的类。
    • Trace Dependencies: 为跟踪依赖性选择 Yes 或 No 。选择 Yes 提示 SOAtest 从您在 Java Class 字段中指定的“根”类为“可访问”的类成员变量类型生成表。
  4. 单击 Next 按钮。将显示 Dependencies 对话框。
  5. 从 Generate Table for Classes 列表选择所需类型依赖项。
  6. 单击 Finish 按钮,生成表格。这些表将在指定目录中创建,并且每个文件的数据源都将添加到您选择的测试套件中。

解释型数据源表格式

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

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

Object References

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

Values and References

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

Collections

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

例如

例如,让我们考虑以 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