最近のアクセス:
データベースのモッキング

はじめに

アプリケーションをテストする際に、適切なデータを用意することは非常に困難です。本番環境に移す前に、異なるシナリオや同等のクラスをテストするためのさまざまなデータセットが必要となるだけではなく、バグを検出するためにそれらを組み合わせる必要もあります。
さらに、GeneXus アプリケーションは一般にデータ集約型アプリケーションであるため、テストを正しく実行するためには、データ入力の組み合わせだけではなく、データベースにある程度のデータを構成する必要もあります。

データベースのモッキングとは

データベースのモッキングとは、(複数のテーブルに対して) 望ましいデータベースの状態をテスト内に設定し、今後のテストのために特定のデータセットを使用可能な状態にしておく手法です。この手法を使うと、テスト用のデータセットは (実際のデータベース内に) 一度準備するだけで良く、その後はモッキングを使用することで環境に関するさまざまなテストフェーズでそのデータセットを使用することができます。言い換えると、データベースのモッキングとは、少量のレコードを含むデータベースのシミュレーションです。

仕組み

モッキングは、記録ステージであらゆる文と応答をリッスンし、テストに使用するデータ (SQL/結果) を記録することで可能になります。情報は (モックデータとして) 保存され、さまざまな環境でその後のすべてのテストの実行に使用されます。記録時にはクエリは順に格納される (順序は関連があります) ため、テストの際には記録のときと同じ順序でクエリを実行します。その後、テストのナビゲーションやクエリが変更になった場合は、モックデータを記録しなおす必要があります。
テストの実行中に、記録ステージで記録されていないデータが必要になった場合、クエリは実際のデータベースのデータソースを使用して結果を取得します。

使用方法

記録ステージを開始するには、ユニットテストを右クリックし、 [ モックデータを記録 ] を選択します。
イメージ:50420.png
このオプションを選択すると、最新のデータソース/データベースを使用して、選択したテストが実行されます。記録が GeneXus Server にチェックインされるように、データベースが望ましい状態にあることを確認し、値をチームに追加します。
テストが終了すると、モックデータはテストに関連付けられた KB ファイルに保存されます。このファイルには、テスト名を使用した名前がつけられます。モックデータをテストに関連付けした後にテストを実行すると、データベースは使用せず、以前に記録したデータが使用されます。
ユニットテストには、モック情報が格納されるいくつかのプロパティがあります。各ジェネレーターには、テストをモックする必要があるかどうかを示すブール値のプロパティがあります。このプロパティを True に設定すると、KB オブジェクトファイルにモック情報が含まれます。
イメージ:50402.png
また、各モック ファイル オブジェクトは、適切なターゲット環境に抽出されるように設定されます。

詳細設定

自動採番の PK や日時など、動的なデータがある場合は、記録済みのモックデータを修正して毎回機能するようにする必要がある場合があります。これを可能にするには、KeyPattern フィールドを設定して、マッチングのタイプを修正する必要があります。
こちらの記事の例を参照してください。

モックデータの共有

オブジェクト、テスト、モックデータの準備が整ったら、それらのオブジェクトを GeneXus Server にコミットできます。テストは、他の開発者が使用するデータベースの状態には左右されません。また、継続的インテグレーションのパイプラインが使用する環境によってテストの成功が左右されることもありません。ローカル環境でテストが成功した場合は、他の環境でも同じように機能します (ただし、オブジェクトのバージョンが同一である必要があります)。

こちらの記事を参照してください。

トラブルシューティング

テスト用のファイルセットはあるが、モックデータがロードされていない場合は、File オブジェクトが現在のジェネレーター用に抽出されるように設定されていることを確認してください。
 




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