リポジトリとリポジトリ アイテムへのアクセス
この章では、コード モジュールからリポジトリおよびリポジトリ アイテムにアクセスする方法、および、コードで記述するアクションとリンクさせる方法について説明します。
テストの定義
テスト対象は Demo Application です。これは、⇢ イントロダクション でダウンロードしたサンプルソリューションに含まれています。コード モジュールを使用して、個人データ (First name, Last name) を入力し、データベースに登録します。
最初に、レコーディング モジュールの場合にはどのようにおこなわれるのかを確認してみましょう。
リポジトリ アイテム FirstName で表されるテキスト フィールドのマウス クリック、および “John” の入力
リポジトリ アイテム LastName で表されるテキスト フィールドのマウス クリック、および “Public” の入力
同じ機能を持つコード モジュールを作成します。
コード モジュールの作成
⇢ コード モジュール の手順に従って、InsertName という名前のコード モジュールを作成します。
リポジトリのインスタンス化
コード モジュールを使用して UI 要素に対してアクションを実行するには、まずこの UI 要素が表されているリポジトリをインスタンス化する必要があります。プロジェクト ビューに表示されているファイル名で、インスタンス化できます。
コード モジュールの RUN() メソッドでのリポジトリのインスタンス化
プロジェクト ビューにおけるリポジトリ
コード モジュール InsertName.cs の RUN() メソッドでのリポジトリのインスタンス化
メモ
リポジトリのクラス名とファイル名は、常に同じです。
または、Instance メソッドを使用して、リポジトリをインスタンス化できます。
UI 要素の使用
インスタンス化されたリポジトリで、それに含まれているリポジトリ アイテム、つまり、それらによって表される UI 要素をテストに使用できるようになりました。
各リポジトリ アイテムは、一連のメソッドを持つ独自のクラスで表されます。たとえば、データベース フォームの First name テキストフィールドに入力するには、以下のメソッドを呼び出します。
メソッドを呼び出すためのクラス階層は、リポジトリの構造に従います。ヘルプで、利用可能な変数とメソッドを確認することができます。
Last name テキストフィールドへの入力も、同様にコーディングします。
コード モジュールの実行
必要なアクションをプログラムしたので、コード モジュールを実行し、それがレコーディング モジュールと同じように機能するかどうかを確認します。
コード モジュールの実行は、以下の手順でおこないます。
テスト スイート ビューを表示します。
コード モジュールを、テスト ケースの適切な場所にドラッグ アンド ドロップします。
同名のレコーディング モジュールを無効化、あるいは削除します。
RUN をクリックします。
メモ
テスト スイートでは、コード モジュールとレコーディング モジュールはまったく同じように扱われます。レコーディング モジュールとコード モジュールが同じ名前を共有している場合は、括弧付きのフォルダー名で区別できます。
リポジトリ アイテム用のコード内変数の定義
コード モジュールが大きくなるにつれて、リポジトリ アイテムとそのメソッドを常にフルパスで指定すると、コード モジュールは急速に複雑になります。これは、同じリポジトリ アイテムを複数回使用する場合に特に顕著です。
このような場合、ローカルまたはグローバル変数を使用して、リポジトリ アイテムを指定するのが合理的です。データベース フォームの Add entry ボタンを使用して、その方法を説明します。
メモ
これらの変数は、データ駆動型テスト用に定義したものとは関係ありません。これらは、コード内モジュール変数と呼ばれます。詳しくは、⇢ モジュール変数 を参照してください。
AddEntry.cs という名前の新しいコード モジュールを作成し、RUN() メソッドに以下のコードを記述します。
リポジトリのインスタンス化
リポジトリ アイテム BtnAddEntry を参照する、変数 ButtonAdd の定義
参照するボタンでのクリック アクション
メモ
レコーディング モジュール ビューのリポジトリからリポジトリ アイテムをドラッグし、それをコード モジュールの目的の位置にドロップすることで、リポジトリ アイテムの変数を定義することもできます。
このコード モジュールで対応するリポジトリがまだインスタンス化されていない場合は、自動的におこなわれます。それ以外の場合は、既存のインスタンスが使用されます。
コード モジュールでのバリデーション
コード モジュールでバリデーションを作成することもできます。Validate クラスには、バリデーションに必要なすべての機能が含まれています。利用可能なメソッドと変数については、API ドキュメント の Ranorex Namespace / Validate を参照してください。
以下の例を見てください。この例は、サンプル ソリューションのコード モジュールで、データベース エントリー数のバリデーションを実装する方法を示しています。
レコーディング モジュールのバリデーション アクション
このアクションは、リポジトリ アイテム CounterEntries の Text 属性の値を、値 1 と比較します。
参照
バリデーションについては、Ranorex Studio 基礎 > ⇢ テストのバリデーション を参照してください。
コード モジュールでの実装
Validate.Equals メソッドは、リポジトリ アイテム CounterEntries の Text 値を、値 1 と比較します。
Validate.Equals メソッド自体は、レポートのエントリーを生成しません。バリデーションの結果についてのレポート エントリーを生成するために、シンプルな if-then-else ブロックを追加しています。
参照
ユーザー コードでのレポートの設定については、Ranorex Studio 基礎 > レポート > ⇢ より複雑なカスタマイズ を参照してください。
参照
Validate クラスの、より高度なサンプルについては、その他のトピックス > ⇢ コード サンプル を参照してください。