テスト・コードの生成

コード生成要求の初期化フェーズ中に、supportFeatures() メソッドを介して com.ibm.rational.test.lt.codegen.core.codegenProtocolExtension 拡張ポイントを実装するすべてのプラグインを呼び出すことによって、LTTestExtensionPreferences クラスを拡張するオブジェクトが作成されます。

このタスクについて

supportFeatures()method は、テスト・モデル・オブジェクトのフィーチャー・リストを取得し、これらのフィーチャーがサポートされると判別する場合は、適切な LTTestExtensionPreferences オブジェクトを戻します。戻されたオブジェクトは、LTTestExtensionPreferences クラスのパブリック部分である com.ibm.rational.test.lt.codegen.core.config.IExtensionPreferences インターフェースを実装します。

コード生成は、com.ibm.rational.test.lt.codegen.core.CodeGenerator クラスによって制御されます。 このクラスは、変換プログラム用のハッシュ・マップ、モデル・エレメント・アダプター、および言語エレメント・タイプによって決定されるテンプレートを保管する EclipseCodegenConfiguration オブジェクトを使用します。コンテナー・テスト・エレメント、データプール、および他の独立したプロトコル固有エレメントには、独自の変換プログラムが定義されています。単独で存在できないエレメントは、変換プログラムの translateChildren() メソッドを呼び出すことによって、それが含まれるエレメントの子として変換されます。

コード生成プログラムは、適切な変換プログラムを判別し、特定のモデル・エレメント用の getTranslationFor() メソッドを呼び出します。

ElementAdapter クラスは getAdapterForType() メソッドを使用して、指定された Behavior Model エレメント用の適切なコード生成モデル・エレメントを判別します。

手順

テスト・エレメントの変換には、以下のステップが含まれます。

  1. テスト・エレメントが動作モデルから読み取られ、テスト・エレメントごとに適切な変換プログラムが判別されます。
  2. 言語エレメント・オブジェクトがエレメント用に作成され、テンプレートが判別されます。
  3. エレメント属性がモデルから読み取られ、対応するパラメーターがテンプレートで置換されます。

タスクの結果

コード言語エレメントの生成は再帰的で、実行モデル・テスト・エレメント (テンプレート・オブジェクトがインスタンス化され、要求されたすべてのテスト置換を含む) のすべてのレベルを含む言語エレメント・ツリーを生成します。ツリーは、言語エレメント・コンテナーをノードとして使用することによって実装されます。複数のエレメントを定義するパラメーター用の言語エレメント・コンテナーのテンプレート置換は、LangElemCollectionValue クラスによって処理されます。

フィードバック