テスト・アクション・チェーン
アクション・チェーン・エディタの「テスト」タブにある「テスト」エディタを使用して、アクション・チェーンの設計、作成および保守、または独自のメソッド論の実装に対するテスト駆動型開発アプローチを実装できます。 テスト・エディタを使用すると、アクション・チェーンのテスト・ケースを簡単に定義し、いつでも実行して、コード変更で機能が破損していないことを確認できます。
テスト・エディタでは、次の方法でコード・パスごとにテストを手動でコーディングする必要がなくなります:
- アクション・チェーンの入力パラメータ、コンテキスト変数および定数を表示して、テスト用にその値を簡単に入力できるようにします。
- テスト対象のコード・パスに対して提供された(モックされた)結果を必要とするアクションを表示します。
- 指定された値に基づいて、テストに対する期待値を提示します。
アクション・チェーンをテストする場合、最初に実行する必要があるのは、可能なすべてのコード・パスを特定することです。これは、それぞれが完全なテスト対象を達成するためにテストする必要があるシナリオであるためです。 ただし、より複雑なコード・パスには、テストが必要なシナリオが複数ある場合があります。
コード・パスを特定した後、パスに対するシナリオの数に応じて、それぞれに少なくとも1つのテストを作成します。 テストごとに、次のことを行う必要があります:
- テスト対象のコード・パスでコードを実行するために必要な、変数の初期値や入力パラメータなどの初期値を指定します。 たとえば、次のイメージのコードを実行するには、
$page.variables.userEnteredString変数の値が必要です。 この変数は、変数にバインドされている入力テキスト・コンポーネントにユーザーが入力した文字数をカウントするために使用されます。 コードの実行には変数の値が必要であるため、テスト・ケースに適した値を指定する必要があります。
- テスト中に値を自動的に返すことができないアクション(コールRESTアクションなど)の場合は、アクションの戻り値をモックとして指定します。
「モック」セクションが表示されるのは、アクションの戻り値を指定する必要がある場合のみです。
たとえば、このアクション・チェーン・テストでは、コールRESTアクションで
movieIdというパラメータを使用してムービーを取得する必要があります。
図test-action-chain-rest-api-automatic.pngの説明 - テスト・ケースに値が指定された後(値を自動的に返すことができないアクションの場合)またはシステム(値を自動的に返すアクションの場合)のいずれかによって、VB Studioは自動的に期待値を生成します。 テスト対象の変数の最終値など、予想される結果を選択します。
たとえば、テストの初期値およびモックを指定した後、Visual Builderで変数の最終値が5であると検出された場合、この予測が提案されます。 その後、テストに期待値を追加してテストできます。 テストが成功するには、すべての期待が満たされなければなりません。
目標は、それぞれのコード・パスをテストして、アクション・チェーンを完全にテストすることです。 テストで各コード・パスの予想される結果がカバーされる場合、Coverageの値は100%になります。
次の例では、完全なテスト・カバレッジを実現するために必要な3つのコード・パスに対して3つのテストが作成されています: 加算テスト、無効な演算子テストおよび減算テスト。 したがって、カバレッジの値は、エディタの左上隅に表示されるとおり、100%です。
if operator_ip === '+'コード・ブロックをテストする追加テストの場合、「プロパティ」ペインの「パラメータ」セクションに3つの入力パラメータ値が表示されます。 予想される結果は、「期待」セクションにあります。
「
図jsac-testing-action-chain-example.jpgの説明」
すべてのテストのソース・コードは、メンテナンスを容易にするために、別のJSONファイルactionchainname-tests.jsonに格納されます。 このファイルの内容を表示するには、左側のペインでJSONをクリックします。 このファイルは、「ナビゲータのソース・ビュー」タブのアーティファクトのchainsフォルダにもあります。
「
図jsac-tests-json.pngの説明」
