Autotest FrameworkはGuiコントロールのテストを自動化するフレームワークです。以下のような特徴があります。
・シンプルなスクリプトを書くだけで、単一のコントロール、あるいはその他のGraphicのテストができます。
・一つのテストアプレットで複数のテストを実行でき、実行したテストとその結果を表示します。
・イベントを発生させることができ、その結果が期待通りかどうかチェックできます。
このAPIの使用およびサンプルの起動はCDEまたはIDEのインストールが
必要になります。以下よりダウンロードしてください。
http://curlap.com/download/ide/index.html
サンプル
http://developers.curlap.com/curl/curl-ext/hp2/checkbuttontests.curl
このサンプルはチェックボックスの動作をテストします。
背景色がテストのステータスを表します。未実行のテストはグレー、成功したテストは緑、失敗したテストはピンクになります。
テスト1
- チェックボックスコントロールの、左から0mm,上から2mmの点をマウスで左クリックして、以下の項目を確認する。
1.ValueChangedEvent,ValueFinishedEventが発生する。
2.値が”CB1″となる。 - この状態から、左から2mm,上から0mmの点をマウスで左クリックして、以下の項目を確認する。
1.ValueChangedEvent,ValueFinishedEventが発生する。
2.値がnullとなる。
テスト2
- チェックボックスコントロールにフォーカスがあり、valueプロパティがfalseの状態でキーボードからAlt+Tを押下して、以下の項目を確認する。
1.valueプロパティがtrueとなる。 - この状態でキーボードからスペースキーを押下する。
1.valueプロパティがtrueとなる。
使い方
テストを定義して、GuiTest.setupを呼びます。
テストはGuiTestクラスのオブジェクトで表現します。これは 1.ターゲットとなるオブジェクト、2.テストの簡単な説明、3.テストステップの三つの部分から成ります。テストのステップはUIクラスのインスタンスで表現します。ここでは以下のようなものが使用されています。
|| valueプロパティの値がfalseであることを確認する。 {UI.check-property “value”, false} || マウスで、コントロールの左から1cm,上から0mmのポイントを左クリックする。 {UI.click 1cm, 0mm} || キーボードで、altキーとtキーを同時にタイプする。 {UI.type alt? = true, “t”} |
UIクラスはユーザインタフェースの操作をシミュレーションするために、列挙型UiGestureの値を使用します。以下の物があります。
{define-enum public UiGesture || マウスジェスチャー press, release, move, click, right-click, double-click, || キーボードジェスチャー || ターゲットオブジェクトのチェック || その他のアクション |
各ジェスチャーごとにコンストラクタがあります。たとえば、サンプルでも使用されていますが、pressジェスチャーについては以下のようになっています。
{press || ターゲットオブジェクト内のx座標です。 x:any, || ターゲットオブジェクト内のy座標です。 y:any, || クリックするボタンです。 button:int = left-button, ||GuiInputEventのフィールドに渡される値です。 shift?:bool = false, ||GuiInputEventのフィールドに渡される値です。 ctrl?:bool = false, ||GuiInputEventのフィールドに渡される値です。 alt?:bool = false, ||GuiInputEventのフィールドに渡される値です。 menu?:bool = false, ||GuiInputEventのフィールドに渡される値です。 command?:bool = false, ||プラットフォームを指定できます(win32, linux, macなど) platform:String = “”, ||ターゲットとなるオブジェクトです。 target:#Graphic = null, ||操作後、次のステップへ移る前の待機時間です。 delay:Time = 50ms } |
ターゲットオブジェクトがTextControlだった場合、x,yを指定する際に単位を省略すると文字数を表します。