前の記事で、BDDFrameworkのテストケースの作り方を一通り確認しました。
ここでは、BDDFramework残りの機能を確認していきます。
Table of Contents
サマリ(FinalResult Block)
FinalResultの使い方
FinalResult Blockを画面内に配置すると、画面内の全Scenarioの実行結果を表示してくれます。
といっても、全件成功、N件失敗……位の情報ですが。
このブロックを検証中に、実行したケースの結果が間違って表示されることが何回もありました。どうも画面上部に配置すると、前回実行時の結果が表示されるように見受けられました。
FinalResultは画面内の全BDDScenarioの下に置くのがよいようです。
下の「1 SCENARIOS FAILED」は2件のシナリオを流して1件失敗するケースのメッセージです。
FinalResultの実装
BlockのPreparationです。
KeyValuesというEntityから値を取得し、BlockのUIに紐付けてある失敗件数を表す変数に設定しています。
KeyValuesの中身を確認してみると、直前のテスト実行で成功した件数、失敗した件数と思われる値が含まれていました。
初期終了処理(SetupOrTeardownStep)
OutSystemsの自動ユニットテストの書き方のドキュメント のThe Importance of Good Test Dataで、画面ごとに、画面内のテスト全体用のデータの準備とクリーンアップ用Actionを用意するように勧めていますね。 これをSetupOrTeardownStepに設定するイメージだと思います。
Setup, Teardownは、他のプログラミング言語でのxUnitのテストツールとほぼ同じ意味です。Scenario実行の前に実行されるのがSetup、終了の前に実行されるのがTeardownです。
それぞれ、Actionを用意しておきます。
同名のSetup Placeholder、Teardown PlaceholderにSetupOrTeardownStep Blockをドラッグ&ドロップで配置し、そのDestinationに用意したActionを設定します。
以下はSetupを配置したところです。
REST API
BDDFrameworkは、定義したテストを実行するためのREST APIがあります。
CIの一環にBDDFrameworkで作成した回帰テストを自動実行することができますね。
RunTestSuiteという名前で、以下のパラメータをGETで受け取ると、画面内のテストを実行して結果をJSONで返してくれます。
- TestESpace:テストモジュールのeSpace名(モジュール名)
- TestSuiteScreen:テスト(BDDScenario)を配置した画面名(Nameプロパティの値)
なお、テストを配置した画面は、Anonymousでアクセスできること、FinalResultを画面下部に配置していることが必要です。
OutSystemsのConsume REST APIのテスト機能で実行してみたところ。
URLはBDDFrameworkをService Studioで開き、(Logic)Integrations>REST>v1を右クリックしてOpen Documentすると、Swagger上で確認できます。