コードの再利用
それは避けられません:テストにおいて繰り返しは生活の事実です。幸いなことに、スクリプトやハンドラーが繰り返し作業を代行する簡単な方法がいくつかあります。
他のスクリプトからのスクリプトの呼び出し
コードを再利用する最も一般的な方法の一つは、別のスクリプトからスクリプトを呼び出すことです。スクリプトを呼び出すには、あなたのコードにスクリプトの名前を挿入し、その後にスクリプトが必要とする任意のパラメータを続けます。スクリプトの呼び出しは、スクリプト自体がコマンドまたは関数であるかのように扱うことができます。他のスクリプトを呼び出す詳細な情報については、他のスクリプトとハンドラーの実行を参照してください。
以下は、スクリプト内からスクリプトを呼び出す例です:
CycleWindows // 単純なスクリプト名をコマンドとして呼び出します
ConnectionScript "Old SUT", "New SUT" // パラメータ付きの単純なスクリプト名を呼び出します
put CaptureTheScreen("SomePrefix",1) into myScreenCapture
// パラメータ付きの関数としてスクリプトを呼び出し、結果を変数に入れます
コマンド呼び出しを使用するか、関数呼び出しを使用するかは、スクリプト自体に依存します。両方のタイプは入力パラメータを取ることができ、その場合呼び出されるスクリプトはparams
宣言で始まる必要があります。関数呼び出しはまた値を返すことができ、その場合呼び出されるスクリプトはreturn
ステートメントを含む必要があります。
もしスペースや特殊文字のない単純なスクリプト名を使用し、スクリプトを同じスイートやヘルパースイートに保存している場合、スクリプト名を直接使用することができます。上記の例を参照してください。
関連しないスイートにあるスクリプトや、その名前にスペースや特殊文字が含まれているスクリプトについては、Run
コマンドを入力し、その後にスクリプトのパスを入力します:
Run "/Users/Seiji/Documents/EggPlant Suites/Validation.suite/Scripts/ConnectionScript"
// 関連しないスイートからスクリプトを開くためにRunコマンドを呼び出します
他のスクリプトからスクリプトを呼び出すこの能力のため、特定のタスクやアクションを実行するセグメントでスクリプトを書くことを考えると便利です。この「モジュラー」アプローチは、あなたが異なるコンテキストでスクリプトを再利用する最大の機会を提供します。そのような場合、あなたの「メイン」スクリプトはテストや環境に特化したコードを含むことになりますが、汎用のタスクを完了するために別のスクリプトを呼び出します。
ハンドラーとヘルパースイートの使用に関するより詳細な情報は、これらは共にコードの再利用とモジュラーデザインを支援する機能であることを記載しています、下記を参照してください。
ハンドラ
同じスクリプト内でコードを再利用するために、handler
を書くことができます。これは基本的にサブスクリプトです。ハンドラーは、あなたが他のスクリプトを呼び出すかのように、いつでも呼び出すことができる主要なスクリプトの一部です。
例:CaptureTheScreen
ハンドラ
to CaptureTheScreen prefix, count // ハンドラーの開始
set fileName to prefix & "ScreenShot" & count // prefixScreenShotCountをfileNameに入れます
set tempFile to "/tmp/" & fileName // "/tmp/filename"をtempFileに入れます
CaptureScreen tempFile //スクリーンショットをキャプチャします
return fileName // fileNameを関数の戻り値として設定します
end CaptureTheScreen //ハンドラーの終了
ハンドラの結果の返却
スクリプトやハンドラが値を返す場合、このような場合、次の行でResults
関数を呼び出すことでその値にアクセスできます。したがって、上記の例を使用して、以下に示すようにハンドラを呼び出し、結果にアクセスすることができます。
例: ハンドラの結果の返却
CaptureTheScreen "MacTest", 6 // CaptureTheScreenハンドラを呼び出します
Set newFile to the result // 返された値を変数に入れます
コマンドまたは関数としてのハンドラ
CaptureTheScreen
ハンドラは汎用のハ ンドラなので、関数としても呼び出すことができます。主な使い方の違いは、コマンドはそれ自体が完全な文であり、それが値を返すかどうかに関係なく使用できる一方、関数は式の一部として呼び出さなければならない点です。
例: コマンドと関数としてのハンドラの呼び出し
CaptureTheScreen "MacTest", 6 // コマンドとして呼び出され、ハンドラが実行されます
put CaptureTheScreen ("MacTest",6) // 関数として呼び出され、ハンドラの値を返します。括弧に注意してください。