スタブの振る舞い

スタブ は、コードから呼び出される実際のクラスに置換の実装を提供するクラスです。 Java™ コンポーネント用、Enterprise JavaBeans™ (EJB) 用、および Web サービス用のスタブを生成できます。

スタブの通常の使用目的は次のとおりです。

Java クラスのスタブを定義して、そのスタブを複数のテストで再利用できます。 スタブを作成したら、その振る舞いをスタブ・データ・テーブルに定義するか、そのスタブと関連付けられているユーザー・コード・クラスにコードを入力します。

スタブ・データ・テーブル

スタブ・データ・テーブルは、特定の入力に対するスタブ・クラスの出力における振る舞いを定義します。 スタブ・データ・テーブルを使用し、それぞれのスタブ・メソッドごとに実際の入力値と戻り値を指定して、スタブ・クラスをシミュレートしてください。 以下のサンプル不動産アプリケーションで、スタブ・データ・テーブルの使用法を示します。

このアプリケーションでは、LenderAppraiser という 2 つのクラスがテスト対象となっています。 Mortgage という名前の 3 番目のクラスは、Lender クラスと Appraiser クラスのテストをより容易に分離できるようにスタブされています。 これらのクラスとそのメソッドの要約を、以下の表に示します。

Lender Appraiser Mortgage
validateCredit getBestMortgageRate getAPR
computeFixed30y    
computeARM30y    

Mortgage クラスの getAPR メソッドは、2 つの入力パラメーター points および score を取り込み、rate を戻します。 以下の Mortgage クラス用のスタブ・データ・テーブルの図に示されているように、points パラメーターが 1 に等しい場合は、score パラメーターの値にかかわらず、rate 出力は 5.94% となります。 points パラメーターが 2 に等しく、さらに score が 700 から 900 の範囲内である場合は、rate 出力は 5.69% となります。

スタブ・データ・テーブルの例

スタブ・データ・テーブルの使用を通じて、getAPR メソッドの振る舞いをシミュレートできます。

注: 重複する入力値がある場合は、より左にあるデータ・セットに定義されている振る舞いが優先されます。 例えば、最初のデータ・セットには 1 から 20 という範囲が含まれており、2 番目のデータ・セットには 1 から 10 という範囲が含まれている場合、スタブは最初のデータ・セットの 1 から 20 の範囲から指定された値を戻し、2 番目のデータ・セット内の値は無視します。

スタブ・ユーザー・コード・クラス

スタブの振る舞いの定義は、スタブと一緒に生成されるユーザー・コード・クラスにコードを追加するという方法でも行えます。 通常は、スタブの振る舞いをスタブ・データ・テーブルで実行できない場合に、スタブの振る舞いをユーザー・コード・クラスに定義します。 これは、例えば次のような場合に行います。

ある特定のメソッド用としてユーザー・コード・クラスに追加したコードはすべて、スタブ・データ・テーブルに指定されている振る舞いより優先されます。

Enterprise JavaBeans (EJB) の場合のスタブ

セッション Bean のテストでもスタブを使用できます。 例えば、そのビジネス・メソッドをまだ完全には実装していないセッション Bean をスタブする必要が生じることがあります。 ほとんどの場合は、エンティティー Bean をスタブする必要はありません。なぜなら、スタブを使用しなくてもエンティティー Bean を分離してテストできるからです。

関連概念
スタブ・データ・テーブル
コンポーネント・テストと Java エディター
関連タスク
Java コンポーネント用のスタブの作成
セッション Bean 用のスタブの作成
テスト・スイート内のスタブの編集
初期化ポイントの挿入
検証アクションの挿入
タイミング制約の挿入
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved. (C) Copyright IBM Japan 2005