使用できる例

このプロキシー・サンプルでは、SubItems を持つコントロールの記録動作を拡張し、対応する再生をサポートする方法について説明します。

拡張機能: SubItems を持つコントロールの記録

このプロキシー・サンプルでは、processSingleMouseEvent() プロキシー API を拡張して、スピン・コントロールの記録動作を変更します。 スピン・コントロールにはその子として 2 つのボタンと 1 つのテキスト制御がありますが、テストの観点から、それを TestObject Map に表示されている、子を持たない単一のコントロールとして処理する必要があります。 (TestObjectMap では、ボタンおよびテキストは SubItems として処理されます。) processSingleMouseEvent() インプリメンテーションは、適切な SubItems (例えば、記録用のパラメーターとして atButton("UP") または atButton("DOWN")) とともにメソッドを設定します。 また、スピン・コントロールには子オブジェクトがありますが、それらは別個の TestObjects としてリストされていないことを確認する必要があることに注意してください。 そのため、getChildAtPoint() および getChildren() API は NULL 値を戻すように拡張されます。 これらの子オブジェクトは SubItems として処理されます。

再生サポート

記録中に導入される SubItem ごとの再生をサポートするために、Functional Tester はプロキシーを介して各 SubItem の画面の長方形を探します。 SubItem の長方形は、java.awt.Rectangle getScreenRectangle(Subitem subitem) プロキシー API を拡張して提供できます。

バイナリーのデプロイ

JSpinnerProxy.jar およびJSpinnerProxy.rftcust ファイルをカスタマイズ・ディレクトリーにコピーし、Functional Tester を再始動して、サンプル・テスト対象アプリケーション (AUT) をテストします。

記録動作の確認

以下のようにして、スピン・コントロールの記録動作を確認できます。

  • プロキシーをデプロイする前に、JSpinner の上下ボタンの結果を記録すると、クリックは button.click() として記録されます。その場合、上下コントロールはそれぞれ別個のコントロールとして処理されます。
  • プロキシーをデプロイした後、上ボタンをクリックすると、spinner().click(atButton("UP")) として記録されます。 ボタンは、別個の TestObject としてではなく、SubItem として処理および記録されることに注意してください。

再生動作の確認

  • プロキシーをデプロイする前に、SubItem を持つユーザー・アクション (例えば、spinner().click(atButton("UP"))) を再生すると、例外 Point not found がスローされます。
  • プロキシーをデプロイした後、SubItem を持つユーザー・アクションを再生すると、正常に作動します。
親トピック: JSpinnerProxy

フィードバック