ダイアログを開く、アプリケーションを起動する、テキストフィールドに入力するといった、繰り返し行われるアクションをマクロに定義することで、テストスクリプトをモジュール化することができます。この方法によって、より簡単に手動でスクリプトを作成、修正、検査することができます。
マクロを使用してスクリプトをモジュール化する方法を説明するために、以下に X-Designer のテストスクリプトからの抜粋を例として示します。この短いスクリプトは以下のアクションを行います。
最上位スクリプトがより読みやすくなるように上記のテストを行うには、マクロプリプロセッサ m4 を使用します。このプリプロセッサはすべての UNIX システムで使用することができます。
上記のテストを行う上位スクリプトは、次のようになります。
include(Defs.m4) StartUp() shell date Palette(xd_XmDialogShell) Palette(xd_XmForm) VariableName(myform) SaveDesignAs(mydesign.xd) message Test Sequence Over shell date Finish()
前述のスクリプトの大部分がマクロ呼び出しで構成されています。構文中のキーワードについては、付録 C「 X-Designer 再現機能のコマンド構文」を参照してください。
Defs.m4 というマクロ定義スクリプトは、以下のとおりです。
define(HandleExpectedWarning, in warning_popup push warning.OK) define(StartUp, if !IsPseudoColor message Non PseudoColor display HandleExpectedWarning() endif) define(Palette, in ApplicationShell push $1) define(VariableName, in ApplicationShell multiclick nb_vn_t type $1 key Return) define(SaveDesignAs, in ApplicationShell cascade file_menu select fm_menu.fm_saveas in save_dialog_popup doubleclick Text type $1 push save_dialog.OK) define(Finish, in ApplicationShell cascade file_menu select fm_menu.fm_exit if in save_changes_dialog push xd_question.xd_question_cancel_b endif)
次のコマンドは、 X-Designer 再現に渡される最終スクリプトファイルを作成します。
m4 Test.in > Test.xds
ファイル Test.in が上位スクリプトです。Test.xds は出力ファイルで、このファイルに展開されたマクロを持つ最終スクリプトが含まれます。
前述したファイルに入力し、次に m4 を使用して最終スクリプトファイルを作成し、この例をテストします。テストが終了したら、次のように X-Designer を使用し、Test.xds を再生対象のスクリプトとして指定して X-Designer 再現を実行します。
xdreplay -f Test.xds xdesigner
さらに一歩進んで、個々のファイルに X-Designer のウィジェットパレット上のウィジェットの名前を定義し、次に「shell」や「form」などのより抽象的な名前からウィジェット名が特定できるように「Palette マクロ」を定義します。
define(shell, xd_XmDialogShell) define(form, xd_XmForm)
これで、内部的な名前が一ヶ所に保持されるので、保守および変更をより簡単に行うことができます。
関連項目: