第3章 Business Central でのテストシナリオデザイナー
テストシナリオデザイナーは、テーブル形式のレイアウトを提供し、シナリオテンプレートと関連するテストケースすべてを定義できるようにします。デザイナーレイアウトはヘッダーと個別の行を持つテーブルで構成されています。ヘッダーは、GIVEN と EXPECT の行、インスタンスの行、対応のフィールドの行の 3 つで構成されます。ヘッダーは、テストシナリオテンプレートとしても知られており、個別の行はテストシナリオ定義と呼ばれます。
テストシナリオテンプレートまたはヘッダーは以下の 2 つの部分で構成されます。
- GIVEN データオブジェクトおよびそのフィールド: 入力情報を表現します。
- EXPECT データオブジェクトおよびそのフィールド: オブジェクトとフィールドを表現します。実際の値が指定の情報をもとにチェックされ、想定の結果を構成するのにも、この値を使用します。
テストシナリオの定義は、個別のテストケーステンプレートを表現します。
Project Explorer にはデザイナーの左パネルからアクセスできますが、右パネルからは Settings、Test Tools、Scenario Cheatsheet、Test Report、Coverage Report タブにアクセスできます。Settings タブにアクセスし、ルールベースおよび DMN ベースのテストシナリオのグローバル設定を表示し、編集できます。Test Tools を使用してデータオブジェクトマッピングを設定できます。Scenario Cheatsheet タブには参照として使用できるメモとチートシートが含まれています。Test Report タブにはテストの概要とシナリオステータスが表示されます。テストカバレッジ統計を表示するには、テストシナリオデザイナーの右側にある Coverage Report タブを使用します。
3.1. データオブジェクトのインポート
テストシナリオデザイナーは、テストシナリオと同じパッケージ内に配置されている全データオブジェクトを読み込みます。すべてのデータオブジェクトは、デザイナーの Data Objects タブから表示できます。読み込んだデータオブジェクトは、Test Tools パネルにも表示されます。
データオブジェクトが変更された場合に (新規データオブジェクトの作成時や、既存のデータオブジェクトの削除時など) デザイナーを終了して、開き直す必要があります。一覧からデータオブジェクトを選択して、フィールドとフィールドタイプを表示します。
テストシナリオとは異なるパッケージに配置されているデータオブジェクトを使用する場合には、先にそのデータオブジェクトをインポートする必要があります。以下の手順に従い、ルールベースのテストシナリオ用にデータオブジェクトをインポートしてください。
DMN ベースのテストシナリオの作成中にデータオブジェクトをインポートできません。DMN ベーステストシナリオは、プロジェクトからのデータオブジェクトを使用せず、DMN ファイルで定義したカスタムのデータタイプを使用します。
手順
- テストシナリオデザイナーの Project Explorer パネルに移動します。
- Test Scenario からテストシナリオを選択します。
- Data Objects タブを選択して、New Item をクリックします。
- Add import ウィンドウで、ドロップダウンリストからデータオブジェクトを選択します。
- Ok をクリックしてから Save をクリックします。
- テストシナリオデザイナーを終了して再度開き、データオブジェクトリストから新しいデータオブジェクトを表示します。
3.2. テストシナリオのインポート
プロジェクトビューの Asset タブにある Import Asset ボタンを使用して、既存のテストシナリオをインポートできます。
手順
- Business Central で、Menu → Design → Projects に移動して、プロジェクト名をクリックします。
- プロジェクトの Asset タブから Import Asset をクリックします。
Create new Import Asset ウィンドウで、以下を実行します。
- インポートセットの名前を入力します。
- Package ドロップダウンリストからパッケージを選択します。
- Please select a file to upload から、Choose File… をクリックしてテストシナリオファイルを参照します。
- ファイルを選択して Open をクリックします。
- Ok をクリックすると、テストシナリオデザイナーでテストシナリオが開きます。
3.3. テストシナリオの保存
テストシナリオは、テストシナリオテンプレートの作成時や、テストシナリオ定義時にいつでも保存できます。
手順
- 右上のテストシナリオデザイナーのツールバーから、Save をクリックします。
Confirm Save ウィンドウで、以下を実行します。
- テストシナリオに関するコメントを追加する場合には、add a comment をクリックします。
- もう一度 Save をクリックします。
テストシナリオが正常に保存されたことを示すメッセージが画面に表示されます。
3.4. テストシナリオの削除
テストシナリオデザイナーを使用して作成した既存のテストシナリオを削除できます。
手順
- 右上のテストシナリオデザイナーのツールバーから、Delete をクリックします。
Confirm Delete ウィンドウで、以下を実行します。
- テストシナリオの削除に関するコメントを追加するには、add a comment をクリックします。
- 削除 をクリックします。
テストシナリオが正常に削除されたことを示すメッセージが画面に表示されます。
3.5. テストシナリオの名前変更
テストシナリオの名前変更は、デザイナーの右上にある Rename ボタンを使用します。
手順
- 右上のテストシナリオデザイナーのツールバーから、Rename をクリックします。
Rename Asset ウィンドウで、以下を実行します。
- Asset Name フィールドに名前を入力します。
- コメントを追加するには、add a comment をクリックします。
Rename をクリックします。
注記Rename をクリックするだけで、テストシナリオファイルの名前が変更されます。
- 右上のテストシナリオデザイナーのツールバーから、Save をクリックします。
Confirm Save ウィンドウで、以下を実行します。
- コメントを追加するには、add a comment をクリックします。
- もう一度 Save をクリックします。
- Save and Rename をクリックして、同時にシナリオをの保存と、名前変更が可能です。
テストシナリオの名前が正常に変更されたことを示すメッセージが画面に表示されます。
3.6. テストシナリオのコピー
右上のツールバーの Copy ボタンを使用して、既存のテストシナリオを同じパッケージまたは別のパッケージにコピーできます。
手順
- 右上のテストシナリオデザイナーのツールバーから、Copy をクリックします。
Make a Copy ウィンドウで、以下を実行します。
- New Name フィールドに名前を入力します。
- テストシナリオをコピーするパッケージを選択します。
- オプションでコメントを追加するには、add a comment をクリックします。
- Make a Copy をクリックします。
テストシナリオが正常にコピーされたことを示すメッセージが画面に表示されます。
3.7. テストシナリオのダウンロード
今後の参考に、またはバックアップとして、ローカルのマシンにテストシナリオのコピーをダウンロードできます。
手順
右上のテストシナリオデザイナーのツールバーで、Download をクリックします。
.scesim ファイルがローカルマシンにダウンロードされます。
3.8. テストシナリオのバージョン間の切り替え
Business Central には、テストシナリオのさまざまなバージョン間で切り替える機能があります。シナリオを保存するたびに、シナリオの新しいバージョンが Latest Versions に表示されます。この機能を使用するには、一度はテストシナリオファイルを保存しておく必要があります。
手順
- 右上のテストシナリオデザイナーのツールバーから、Latest Version をクリックします。ファイルに複数バージョンがある場合には、ファイルの全バージョンが Latest Version に表示されます。
作業するバージョンをクリックします。
テストシナリオの選択したバージョンがテストシナリオデザイナーで開きます。
- デザイナーツールバーから Restore をクリックします。
Confirm Restore で以下を実行します。
- コメントを追加するには、add a comment をクリックします。
- Restore をクリックして確定します。
選択したバージョンが正常にデザイナーに再読込されたことを示すメッセージが画面に表示されます。
3.9. アラートパネルの表示または非表示
Alerts パネルは、テストシナリオデザイナーまたはプロジェクトビューの下部に表示されます。実行したテストに失敗した場合には、ビルド情報とエラーメッセージが表示されます。
手順
右上のデザイナーツールバーで、Hide Alerts/View Alerts をクリックして、レポートパネルを有効または無効にします。
3.10. コンテキストメニューのオプション
テストシナリオデザイナーには、コンテキストメニューオプションがあり、行と列の追加、削除、複製など、テーブルでの基本操作を実行できます。コンテキストメニューを使用するには、テーブル要素を右クリックする必要があります。メニューオプションは、選択するテーブル要素により異なります。
表3.1 コンテキストメニューのオプション
| テーブル要素 | セルのラベル | 利用可能なコンテキストメニューオプション |
|---|---|---|
|
ヘッダー |
# & Scenario description |
下に行を挿入 |
|
GIVEN & EXPECT |
左端に列を挿入、右端に列を挿入、下に行を挿入 | |
|
INSTANCE 1, INSTANCE 2 & PROPERTY 1, PROPERTY 2 |
左に列を挿入、右に列を挿入、列を削除、インスタンスを複製、下に行を挿入 | |
|
行 |
行番号、テストシナリオの説明、またはテストシナリオの定義を含むすべてのセル |
上に行を挿入、下に行を挿入、行を複製、行を削除、シナリオを実行 |
表3.2 テーブルの対話の説明
| テーブルの対話 | 説明 |
|---|---|
|
左端に列を挿入 |
(ユーザーの選択をもとにテーブルの GIVEN または EXPECT セクションで) 新たに左端に列を挿入します。 |
|
右端に列を挿入 |
(ユーザーの選択をもとにテーブルの GIVEN または EXPECT セクションで) 新たに右端に列を挿入します。 |
|
左に列を挿入 |
選択した列の左に新しい列を挿入します。新しい列は、(ユーザーの選択をもとにテーブルの GIVEN または EXPECT セクションに) 選択した列と同じタイプを挿入します。 |
|
右に行を挿入 |
選択した列の右に新しい列を挿入します。新しい列は、(ユーザーの選択をもとにテーブルの GIVEN または EXPECT セクションに) 選択した列と同じタイプを挿入します。 |
|
列を削除 |
選択した列を削除します。 |
|
上に行を挿入 |
選択した行の上に新しい行を挿入します。 |
|
下に行を挿入 |
選択した行の下に新しい行を挿入します。ヘッダーセルからの呼び出しの場合は、インデックス 1 の行を新たに挿入します。 |
|
行を複製 |
選択した行を複製します。 |
|
インスタンスを複製 |
選択したインスタンスを複製します。 |
|
行を削除 |
選択した行を削除します。 |
|
シナリオを実行 |
単一のテストシナリオを実行します。 |
Insert column right または Insert column left コンテキストメニューのオプションは以下の条件で動作が異なります。
- 選択した列にタイプが定義されていない場合には、タイプなしで新しい列が追加されます。
選択した列にタイプが定義されていない場合には、親のインスタンスタイプを引き継いだ列または新しい空の列が作成されます。
- アクションがインスタンスヘッダーから実行された場合には、タイプなしの列が新たに作成されます。
- アクションがプロパティーのヘッダーから実行される場合には、親のインスタンスタイプを引き継いだ列が新たに作成されます。
3.11. テストシナリオのグローバル設定の構成
テストシナリオデザイナーの右側にあるグローバル Settings タブを使用して、アセットの追加プロパティーを設定および変更できます。
3.11.1. ルールベースのテストシナリオのグローバル設定の構成
以下の手順に従って、ルールベースのテストシナリオのグローバル設定を表示および編集します。
手順
- テストシナリオデザイナーの右側にある Settings タブをクリックして、属性を表示します。
Settings パネルで次の属性を設定します。
- Name: デザイナーの右上のツールバーから Rename オプションを使用して、既存のテストシナリオの名前を変更できます。
- Type: この属性は、ルールベースのテストシナリオであり、読み取り専用であることを指定します。
Stateless Session: KieSession がステートレスかどうかを指定するには、このチェックボックスを選択するか、選択解除します。
注記現在の KieSession がステートレスで、チェックボックスが選択されていない場合には、テストに失敗します。
- KieSession: (オプション) テストシナリオの KieSession を入力します。
- RuleFlowGroup/AgendaGroup: (オプション) テストシナリオの RuleFlowGroup または AgendaGroup を入力します。
- オプションで、テスト実行後にプロジェクトレベルからシミュレーション全体をスキップするには、チェックボックスを選択します。
- 保存 をクリックします。
3.11.2. DMN ベースのテストシナリオのグローバル設定構成
以下の手順に従って、DMN ベースのテストシナリオのグローバル設定を表示および編集します。
手順
- テストシナリオデザイナーの右側にある Settings タブをクリックして、属性を表示します。
Settings パネルで次の属性を設定します。
- Name: デザイナーの右上のツールバーから Rename オプションを使用して、既存のテストシナリオの名前を変更できます。
- Type: この属性は、DMN ベースのテストシナリオであり、読み取り専用であることを指定します。
- DMN model: (オプション) テストシナリオ用の DMN モデルを入力します。
- DMN name: これは DMN モデルの名前で、読み取り専用です。
- DMN namespace: これは DMN モデルのデフォルトの名前空間で、読み取り専用です。
- オプションで、テスト実行後にプロジェクトレベルからシミュレーション全体をスキップするには、チェックボックスを選択します。
- 保存 をクリックします。