最近のアクセス:
ユニットテストの作成

開始前に、使用している GeneXus のバージョンがユニット (単体) テストのフレームワークをサポートしていることを確認してください。
これは、GeneXus IDE のメニューで簡単に確認することができます。サポートしている場合、次のようにメニューバーに [ テスト ] メニューが表示されます:
イメージ:38342.png
このオプションが表示されない場合は、インストール方法を確認してください。
ユニットテストは GeneXus ナレッジベースの新しいオブジェクトタイプであり、特殊な GeneXus プロシージャーです。さまざまなデータや検証 (アサーション) を使用してオブジェクトをテストする GeneXus コードを記述できます。ユニットテストの最も簡単な作成方法は、KB エクスプローラーでテスト対象のオブジェクトを右クリックし、 [ ユニットテストを作成 ] を選択することです。このオプションは、選択したオブジェクトに対してテストを行うための新しい Unit Test オブジェクトを自動的に作成します。サポートされるオブジェクトは、プロシージャー、データプロバイダービジネスコンポーネントです。
イメージ:52113.png
これにより、新しいユニットテストが自動的に生成されます。さまざまなシナリオをテストする場合は、これにさまざまなデータの入力や出力を追加する必要があります。
既定では、テストによって 3 つのオブジェクトが生成されます: 
  • 入出力の構造を処理する SDT オブジェクト
  • 生成されたデータセットを含むデータプロバイダー 
  • データプロバイダーで定義されたすべてのデータセットを使用して対象のオブジェクトを呼び出し、出力値についてアサーションを行うユニットテスト
これら 3 つのオブジェクトについては、こちらの説明 (英語/スペイン語) を参照してください。

簡単なユニットテストの生成例

パラメーターで受け取った 2 つの入力文字列を連結する、「Append」というシンプルなプロシージャーについて考えます。自動生成された簡単なテストを次に示します。
イメージ:52120.png
コードのテンプレートは、さまざまな入力を追加したり、アサーションを使用して出力を検証したりできるように、すべて編集可能になっています。
アサーションは、テストの実行時に、プロシージャーの結果/出力を検証するために使用します。通常は、出力された変数と想定された値を比較します。テストには、異なる結果を検証する任意の数のアサーションを追加できます。それらのいずれかが失敗した場合、テストの結果は不合格 (FAILED) になります
ForEach で結果をナビゲートするデータベースアサーションを追加して、データベースの結果をプロシージャーの出力と比較することもできます。
この自動生成されたコードでは、データのコレクション (StringConcatenationUnitTestData) が反復処理されます。
イメージ:52121.png
既定では、固定の値とランダムの値を組み合わせて、データセットが 5 つ自動で生成されます。
テストケースごとに TestCaseId パラメーターがあり、これは GXtest でテストケースを識別するためにのみ使用されます。また、テストするプロシージャーの入力値、想定される結果、およびテストケースのアサーションが失敗した場合のメッセージが含まれています。
想定される値を空にしてユニットテストを実行し、取得された値を想定される値としてデータプロバイダーに設定することができます。前の例で、想定される値を入力せずに、生成されたテストケースを使用してユニットテストを実行し、[ 期待値として設定 ] ボタンを選択します。
イメージ:52118.png
これにより、テストケースで想定される値がデータプロバイダーに設定されます。
イメージ:52119.png

テストデータ生成の設定

このデータプロバイダーを使用すると、いくつかのデータを組み合わせてテストを実行できます。開発者は、データを組み合わせるアルゴリズムを選択して、生成されるデータを設定できます。テストデータ生成を設定する方法については、こちらを参照してください。
またユーザーは、オブジェクトからユニットテストを作成する際に、ドメイン変数用にドメインのテスト値を定義できるようになりました。これを行うには、ユーザー定義のドメイン内で [ Test Values ] プロパティを定義し、コンマ区切りの値セットを指定します。この機能を使用する場合は、テストデータを最大限に活用する組み合わせアルゴリズムを選択することを強くお勧めします (Cartesian、Pairwise など)。



サブページ
Created: 19/08/09 02:01 by Admin Last update: 23/04/24 18:07 by Admin
カテゴリ
Powered by GXwiki 3.0