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

テスト・データ・テーブルを使用すると、テストの実行時に使用できるテスト入出力データを定義できます。 テスト・データ・テーブルとテスト振る舞いスクリプトは同期化されるので、コードに加えた変更がテスト・データ・テーブルに反映され、またその逆も行われます。

各テスト・データ・テーブルはテスト・コード内の特定のテスト・ケース (JUnit テスト・メソッド) にマップされるため、それぞれのテスト・メソッドごとに別個のテスト・データ・テーブルが作成されます。 テスト振る舞いコードに対する作業中に、カーソルをあるテスト・メソッドから別のテスト・メソッドに移動すると、「テスト・データ・テーブル」ビューが自動的に更新されます。 テスト振る舞いコードを最初に開いたときには、カーソルをそのコード内のテスト・メソッドに移動するまで、テスト・データ・テーブルは表示されません。

テスト・データ・テーブル内の各行はコード内のオブジェクトまたは式を表し、各列はデータ・セット (等価クラス) を表します。 各データ・セット列は 2 分割されており、その半分は入力値用、残りの半分は予期出力値用となっています。 予期出力には、戻り値、例外、および出力用として特別にマークされているすべてのパラメーターが含まれます。

テスト・データ・テーブルでは、構文およびデータ型についての妥当性検査が自動的に行われて、ユーザーが入力したデータが構文的に正しいことが保証されます。
注: テストでコンパイルしない場合は、構文の検査は自動的にオフにされます。

テスト・データ・テーブルを使用すると、以下の作業を実行できます。

式、セット、および範囲の形式でのテスト・データの提供

割り当てステートメントの右側に表示可能な、構文的に有効な式はすべて、テスト・データ・テーブルに式として入力できます。 これには、プリミティブ、ストリング (二重引用符で囲んだもの)、変数参照、およびコンストラクター呼び出しとメソッド呼び出しが含まれます。

また、テストの入力、予期出力、および戻り値として使用するセットと範囲も挿入できます。 テスト・データ・テーブルには、セットおよび範囲を定義するための独自のセット・エディターと範囲エディターが含まれています。 テーブル・セルの中で右クリックし、「セットの定義」または「範囲の定義」をクリックしてください。 セット・エディターまたは範囲エディターを使用しなければ、セル内にセットまたは範囲を入力できないことに注意してください。 セットは、データ・テーブル内で、中括弧 ({ }) とそのセットを定義するのに必要なすべてのコンマで区切った値で表示します。 範囲は、データ・テーブル内で、コンマで区切った値を大括弧 ([ ]) で囲んで表示します。

配列へのエレメントの追加

テスト・データ・テーブルでは、式、範囲、セット、およびオブジェクトを使用できるだけでなく、配列も使用できます。 配列は、プリミティブ・エレメントまたはオブジェクト・エレメントの順序付きリストのコンテナーです。 配列は、1 次元配列にも多次元配列にもできます。つまり、配列には他の配列を含めることもできるということです。 テスト・データ・テーブル内で、配列は階層的に表示されます。具体的には、配列内の各エレメントがそれぞれ独自の行に表示され、それらの行が、配列を表す行の下でネストされます。 配列内のエレメントは、それぞれインデックス付きで表示され、他とは無関係に検索および変更できます。 つまり、配列の最初のエレメントは [0]、2 番目のエレメントは [1]、というように表示されます。

オブジェクト・データ型の属性用のテスト・データの提供

プリミティブ型 (int、char、double、long など)、ラップされたプリミティブ型 (例えば、Integer または Double)、または String を基にした引き数は、テスト・データ・テーブル内で単一行として視覚化できます。 ただし、複数の定義属性を持つオブジェクトは、テスト・データ・テーブル内で単一行として視覚化することはできません。 これらの複合オブジェクトは、テスト・データ・テーブル内で複数の行にわたって階層的に表示されます。

テスト・データ・テーブル内でオブジェクトを含む任意のセルをクリックすると、リストが表示されて、そこからオブジェクトの定義方法を選択できます。 オブジェクトは、1 つ以上のコンストラクター、またはオブジェクト・プロパティーの 1 つ以上のセットによって定義できます。 リストから項目を選択すると、オブジェクトを表す行が展開されて、選択した定義属性が表示されます。

注: テスト・データ・テーブルでは、ハッシュ・マップ (java.util.HashMap) はサポートされません。

データ・セットへのデータの区分化

データ・セット (または等価クラス) とは、そのどれもが同じ振る舞いを起動することを予期されている入力値のセットのことです。 データ・セットは、データを、ユーザー・コードによりすべて同じ方法で処理する必要がある、複数の論理的な単位に区分化するのに便利です。 テスト・データ・テーブル内の各データ・セットには、入力値用の列と予期出力値用の列が 1 つずつ含まれています。

各データ・セットは、1 つ以上のテスト実行用に値を提供します。 テスト・データ・テーブルに 3 つのデータ・セットがある場合は、同じテストの振る舞いが少なくとも 3 回は実行されます。 (テスト・データ・テーブルで値としてセットおよび範囲を使用する場合は、そのセットまたは範囲のそれぞれの値ごとにテストが実行されます。)

サブクラスを使用したオブジェクトの初期化とテスト

テスト・データ・テーブルには、型の列があります。この列を編集して、インターフェース型の変数または継承クラスを持つ型の変数が、実装クラスまたはサブクラスのデータを持てるようにできます。 例えば、仮りに drawCalendar という名前のメソッドがあり、サブクラスとして GregorianCalendar および LunarCalendar を持つ Calendar 型の引き数を 1 つ取るとします。 GregorianCalendar 型のオブジェクトを渡すテストのセットを定義する場合は、その引き数の型のフィールドを編集します。 型の編集時には、オリジナルの引き数の型がメソッド・シグニチャーに表示されます。

関連概念
データ・セット
テスト生成プロセス
スタブ・データ・テーブル
関連タスク
セットの定義
範囲の定義
配列へのエレメントの追加
オブジェクト・データ型の属性用のテスト・データの提供
サブクラスを使用したオブジェクトの初期化とテスト
予期される例外の選択
テスト・データの定義
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved. (C) Copyright IBM Japan 2005