変換したデータ ソースは表形式のデータ ソースであり、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 型のオブジェクトがあります。
...