変換したデータ ソースは表形式のデータ ソースであり、Java のオブジェクト グラフのリレーショナル表現として解釈されます。変換したデータ ソースを使用すると、さまざまな Java オブジェクトとオブジェクト グラフを作成し、EJB Clinet ツールや他の SOAtest ツールのテスト パラメーター入力として使用できます。EJB Client の詳細については「EJB Client」を参照してください。
Java Bean のフィールドからのデータ ソース生成
Java Bean のフィールドからデータ ソースを生成するには、次の操作を行います。
- 次のいずれかを実施します。
- テスト スイート レベルのデータ ソースを追加するには、対象のテスト スイート ノードを選択し、[データ ソースの追加] ツールバー ボタンをクリックします。
- プロジェクト レベルのデータ ソースを追加するには、テスト ケース エクスプローラーで対象プロジェクトのノードを右クリックし、[新規追加] > [データ ソース] をクリックします。
- グローバル レベルのデータ ソースを追加するには、テスト ケース エクスプローラーで [グローバル データ ソース] ノードを右クリックし、[新規追加] > [データ ソース] をクリックします。
- テスト スイート レベルのデータ ソースを追加するには、対象のテスト スイート ノードを選択し、[データ ソースの追加] ツールバー ボタンをクリックします。
- [Bean ウィザード] を選択し、[次へ] をクリックします。[Bean ウィザード] ダイアログが表示されます。
- [Bean ウィザード] ダイアログで以下のオプションを設定します。
- 出力先タイプ: 作成するテーブル テンプレートのタイプをドロップダウン メニューから選択します。
- 出力先ディレクトリ: テーブルを書き込む場所を指定します。
- 既存のファイルを上書きしますか?: 既存のファイルを上書きするかどうかを指定します。
- Java クラス: テーブル表現を作成するクラスを指定します。
- 依存関係をトレースしますか?: 依存関係をトレースするかどうかを [はい] または [いいえ] で選択します。[はい] を選択すると、[Java クラス] フィールドで指定した「ルート」クラスから「到達可能な」クラス メンバー変数の型に対してテーブルが生成されます。
- [次へ] ボタンをクリックします。[依存関係] ダイアログが表示されます。
- [次のクラスに対してテーブルを作成] から対象とする型の依存関係を選択します。
- [終了] をクリックしてテーブルを生成します。テーブルは指定されたディレクトリに作成され、各ファイルに対応するデータ ソースが選択されたテスト スイートに追加されます。
変換したデータ ソースのテーブル フォーマット
以下は、SOAtest が使用するリレーショナル/オブジェクト マッピングの主要な概念です。
- テーブルの行はオブジェクトを表します。
- テーブルには 2 つのタイプがあります。
- クラス テーブル
- 列はクラスの メンバー変数を表します。
- 行はインスタンスを表します。
- コレクション テーブル
- 列はテーブルを表し、行は実際のオブジェクトを表します。
- 行はインスタンスを表します。
- クラス テーブル
オブジェクト参照
テーブルの先頭列は、オブジェクト インスタンスの識別子です。オブジェクトを参照するには、テーブル名の後に空白を 1 つ置き、その後にオブジェクト識別子を記述します。各テーブル内で識別子の値がユニークである限り、識別子列の値は必ずしも行番号と一致する必要はありません。
値と参照
一般的に、非プリミティブ クラスのフィールド値は、上記のオブジェクト参照によって指定されます。しかし、プリミティブ型の値については、間接参照のレベルを増やすのは不要かつ煩雑なやり方です。短い形式で記述できるよう、広く定義された文字列表現を持つ一般的に使用される型は、インライン化できるよう、あらかじめサポートされています。参照列の空のセルは null 値と解釈されます。値列の空のセルは、空の文字列と解釈されます。
コレクション
可変サイズのコレクションをサポートするため、コレクション テーブルが導入されました。コレクション テーブルには参照列が 1 列だけあります。コレクション内のオブジェクトを参照するには、テーブル名の後に空白を 1 つ置き、後にオブジェクト識別子を続けます。
例
例として、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 |
---|---|---|---|---|---|---|
1 | SampleBank | AddressDO 1 | PersonDO 1 | 1234123412341 234 | 8/31/2005 | RecentActivities-1 |
Table AddressDO.csv
soatest.examples.AddressDO | city | state | streetAddress | zipCode |
---|---|---|---|---|
1 | Los Angeles | CA | 101 E. Huntington Dr. | 91016 |
Table PersonDO.csv
soatest.examples.PersonDO | firstName | lastName |
---|---|---|
1 | Donald | Duck |
Table ActivityDO.csv
soatest.examples.ActivityDO | amount | description |
---|---|---|
soatest.examples.ActivityDO | amount | description |
1 | 10 | 10 Charge-10 |
2 | 20 | 20 Charge-20 |
3 | 30 | 30 Charge-30 |
4 | 40 | 40 Charge-40 |
5 | 50 | 50 Charge-50 |
6 | 60 | 60 Charge-60 |
7 | 70 | 70 Charge-70 |
8 | 80 | 80 Charge-80 |
9 | 90 | 90 Charge-90 |
10 | 100 | 100 Charge-100 |
Table RecentActivities-1.csv
ActivityDO ref |
---|
ActivityDO 1 |
ActivityDO 2 |
ActivityDO 3 |