アプリケーション固有ビジネス・オブジェクトと、サポートする ABAP Handler を 開発したら、これらが必要な機能をサポートしているかどうかを確認するために、
単体テストを実行する必要があります。IBM では、ご使用の WebSphere Business
Integration システムから独立して動作する、単体テスト・ツールが提供していま
す。そのため、統合ブローカーおよびコネクターを実行しなくてもビジネス・オブ ジェクトをテストできます。しかし、これらのツールは WebSphere Business
Integration システムによる完全なエンドツーエンド・テストに代わるものではな
く、個々のビジネス・オブジェクトおよび ABAP Handler の単体テストを行うため にのみ提供されています。
この章の内容は以下のとおりです。
v 『テストの準備』
v 117ページの『単体テストに関する問題』
v 118ページの『ABAP handler のテスト』
テストの準備
すべてのビジネス・オブジェクト処理は、コネクターの Java コンポーネントから開 始されます。これは、どのビジネス・オブジェクトについても、またどの使用可能 な動詞についても同じです。単体テストを実行するために、IBM では、ビジネス・
オブジェクト要求を送信するコネクターのアクションをシミュレートする ABAP プ ログラムを提供しています。
具体的には、このプログラムは ABAP 機能モジュール /CWLD/RFC_DO_VERB_NEXTGEN を呼び出すことで、コネクターの Java コンポーネントでの doVerbFor() 処理をシ ミュレートします。doVerbFor() と同様に、テスト・プログラムは ABAP 機能モジ ュールに渡す入力として、ビジネス・オブジェクトを必要とします。ABAP テス ト・プログラムは、入力としてテキスト・ファイルを使用します。
すべての入力テスト・ファイルは、同じ ASCII テキスト・フォーマットを持ってい ます。テスト・プログラムはこのファイル・フォーマットから、
/CWLD/RFC_DO_VERB_NEXTGEN に渡されるビジネス・オブジェクトに似るようにデー タを再構成します。以下に示す規則は、ビジネス・オブジェクト入力ファイルに適 用されます。
v ビジネス・オブジェクトは、ファイル内で親ビジネス・オブジェクトを 1 つのみ 持つ必要があります。
v 子ビジネス・オブジェクトは、最初に縦方向、次に横方向に配列されます。
v 属性とビジネス・オブジェクトは、ビジネス・オブジェクト・リポジトリー定義 での順序と正確に同じ順序で配列される必要があります。
v 各属性について、116ページの表14 に示す情報を、次に示す書式と順序で指定 する必要があります (“=” の後にある最初のスペースは無視されます)。
© Copyright IBM Corp. 1997, 2003
115
表14. 属性プロパティーと属性値
属性プロパティー 説明または可能な値
Name 属性の名前
Value 属性の値または CxIgnore = ‘CxIgnore’ または
CxBlank = ‘ ‘
IsKey 属性がキーかどうかを指定する値。0 = no 1 =
yes
Peers NumberOfPeers
同じレベルの子ビジネス・オブジェクトの総数 を表す整数の値
例えば、Item ビジネス・オブジェクトに 2 行の 項目がある場合、各行項目の値は ‘2’ になりま す。
AppInfo 各ビジネス・オブジェクトに特定のアプリケー
ション固有情報
テスト・プログラムのほかに、IBM ではオブジェクト・テスト入力ファイルを生成 するプログラムも提供しています。テスト・ファイル生成プログラムは、いくつか の異なる入力の 1 つに基づいてテスト・ファイルを作成します。表15 に、テス ト・ファイル生成プログラムのオプションのリストを示します。
表15. ファイル生成プログラムの入力および出力のテスト
オプション 必要な入力 出力の説明
Dynamic Ret/Tran 以下の表における表エントリー
v /CWLD/WIZ_OUT (動的検索)
v /CWLD/WIZ_IN (動的トランザクショ ン)
動的検索表と動的トランザクション表でのネッ ト使用に基づいて、属性の完全なセットまたは サブセットを収めたテスト入力ファイル。これ は動的検索と動的トランザクションのメタデー タです。
IDoc Structure SAP アプリケーションで定義した
IDoc タイプ
すべての可能なオブジェクト (セグメント) お
よび属性 (セグメント・フィールド) の 1 つの
インスタンスを収めたテスト入力ファイル。こ れは IDoc 構造体です。
IDoc object v IBM WebSphere ビジネス・オブジェ
クトを検索するために開発された ABAP 機能モジュール
v オブジェクトのキー
そのキーで識別される特定のオブジェクトにつ いて存在する属性 (フィールド) およびオブジ
ェクト (セグメント) のみを収めたテスト入力
ファイル。これは IDoc オブジェクトです。
Repository Definition リポジトリーをロードするために使用
されたか (統合ブローカーが
WebSphere InterChange Server の場 合)、またはリポジトリーにコピーされ
た (統合ブローカーが WebSphere
WMQ Integrator Broker の場合) のと同 じテキスト・ファイル。
すべての可能なオブジェクトと属性の 1 つの インスタンスを収めたテスト入力ファイル。こ れはリポジトリー定義です。
IDoc オブジェクトを生成することは、有効な属性値を持つ入力ファイルをテスト・
ファイル生成ツールで生成でき、値が検証されているため Create、Update、または
Delete 動詞のテストが容易になる点で有用です。
その他の 3 つのオプション (Dynamic Ret/Tran、IDoc Structure、および CW Repository Definition) は、属性値を持たない入力ファイルを提供する点で類似して います。
単体テストに関する問題
単体テスト・ツールは、コネクターのビジネス・オブジェクト処理を実行するすべ ての SAP 開発作業をテストします。また、単体テスト・ツールを使用すると、行 った作業と、コネクターの ABAP コンポーネントとの相互作用をテストできます。
テスト・ツールでは、開発作業のテストはオンライン・ユーザーとして (リアルタ イムで) のみ実行できます。
コネクターをバックグラウンド・ユーザーとして動作している状態でテストする場 合と、オンライン・ユーザーとしてテストする場合の相違点を理解しておくことは 重要です。主な相違点は次のとおりです。
メモリー ビジネス・オブジェクトをテストする際、コネクタ ーは SAP アプリケーションにログインする必要が あります。さらに、イベントを生成し、IBM CrossWorlds Station のテスト・ツールを使用してビ ジネス・オブジェクトをテストするには、ログイン する必要があります。
コネクターは、バックグラウンド・ユーザーとして 実行されるので、コネクター自身が停止され、再始 動されるまでは暗黙的にリフレッシュされることの ない単一のメモリー領域で処理を実行します (その ため、ビジネス・オブジェクト開発では、処理の完 了後にメモリーをクリアすることが重要になりま す)。開発者はオンライン・ユーザーなので、メモリ ーは通常、実行したトランザクションが終了するた びにリフレッシュされます。
詳細については、77ページの『第 6 章 ABAP Extension module でのビジネス・オブジェクトの開 発』を参照してください。このことが原因で発生す る可能性のある問題 (例えば、戻りコードが初期化 されない) は、テスト・ツールでは検出されず、コ ネクターを使用してテストした場合にのみ検出され ます。
画面フローの振る舞い 画面フローの振る舞いは、呼び出しトランザクショ ン API を使用した場合にのみ関係します。ユーザ ーが相互作用する的確な画面および画面の順序は、
通常は実行時にトランザクションのコードによって 決定されます。例えば、ユーザーが資材マスター・
レコードを拡張し、販売ビューを組み込むために
「Sales view」チェック・ボックスをチェックする と、SAP には、ユーザーに対して特定の販売組織情 報を照会する追加の入力フィールドが表示されま す。このように、特定の画面とその要件は、実行時
第 8 章ABAP Extension module のビジネス・オブジェクトのテスト
117
のトランザクション・ソース・コードがユーザーに よるデータ入力に基づいて決定します。テスト・ツ ールはこのタイプのテスト・シナリオを処理できま すが、関連するシナリオの中には、テスト・ツール が処理できないものがあります。
SAP のトランザクション・コードは、バックグラウ ンド・ユーザーとオンライン・ユーザーに異なる画 面を表示する場合があります (通常はパフォーマン スよりも使いやすさのため)。テスト・ツールはオン ライン・ユーザーとしてのみ動作します。コネクタ ーはバックグラウンド・ユーザーとしてのみ動作し ます。この違いにもかかわらず、単体テストではほ とんどのテスト状態を処理できます。
ABAP handler のテスト
ABAP Handler をテストするには、最初にビジネス・オブジェクト入力ファイルを
生成する必要があります。ファイルを修正して、属性値および適切なアプリケーシ ョン固有情報を挿入する必要が生じる場合があります。準備が完了したら、テス ト・ファイルを入力として指定して、テスト・プログラムを実行します。
テスト・ファイルの作成
テスト・ファイルを作成するには、以下の手順を行います。
1. IBM CrossWorlds Station に移動し (トランザクション /n/CWLD/HOME)、
「Tools」タブをクリックします。
2. 「Test Tools」の下にある「Create Test File」ボタンをクリックします。
3. ビジネス・オブジェクトの名前と、テストする動詞を入力します。
4. 入力ファイルの基礎にするソース定義を選択します。テスト・ファイル・オプシ ョンの説明は、表15 を参照してください。
5. ソースに必要な追加データを入力します。
6. 「Generate」ボタンをクリックします。
テスト・ファイルを変更するかどうかを質問するダイアログ・ボックスが表示さ れます。この時点で、テスト・ファイルを SAP のエディターで編集できます。
この時点で編集しない場合は「no」をクリックします。編集する場合は「Yes」
をクリックし、終了したら「Back」矢印 (F3) をクリックします。
7. ファイル名と、テスト・ファイルを保管する場所を入力します。命名規則 Object_verb.in を使用することをお勧めします。
8. 生成したテスト・ファイルを保管したら、そのファイルをテスト・エディターで 開き、以下の作業を行う必要があります。
v 動詞のアプリケーション固有情報を、ABAP Handler を指すように変更しま す。例えば、:function1:function2 です。
正しい構文の詳細については、68ページの『ABAP Handler へのビジネス・
オブジェクト発送』を参照してください。
v 親ビジネス・オブジェクトの適切な属性が isKey としてマーク付けされてい るかどうかを検査します。