他のスクリプトやハンドラーの実行
主要なテストスクリプトの外部に他のスクリプトやハンドラーを作成することで、再利用可能なコードの塊を作成し、テストを効率的にモジュール化できます。しかし、一度これらのスクリプトやハンドラーが作成された後、それらをどのように呼び出すのでしょうか?このページではその方法と、関連するいくつかのコマンドと関数を説明します。
ローカルハンドラーまたはスクリプトの呼び出し
ハンドラーまたはスクリプトをコマンドとして呼び出す
構文:
scriptOrHandlerName {parameters}
スクリプト内の別のハンドラーを呼び出すには、単にハンドラー名をコマンドとして使用し、必要なパラメータと共に使用します。例えば、このコマンドを考えてみましょう。
recordScores 2017, rawScores
ローカルスクリプトにrecordScores
メッセージのための"to"(または"on")ハンドラーがある場合、このコマンドはそのハンドラーを実行し、それに2つのパラメータを渡します。
recordScores
コマンドのためのローカルハンドラーがないが、その名前のスクリプトがある場合、そのスクリプト(つまり、スクリプトの初期ハンドラー)が実行され、それに2つのパラメータが渡されます。したがって、いずれの場合も、ローカルスクリプト内のハンドラーを呼び出すには、または同じディレクトリ内の別のスクリプトを呼び出すには、そのハンドラーまたはスクリプト名をコマンドとして使用するだけです。
ハンドラーまたはスクリプトを関数として呼び出す
構文:
scriptOrFunctionName ( {parameters} )
スクリプトまたはハンドラーを関数として呼び出す方法も同じです:スクリプトまたはハンドラー名を関数として使用します。例えば、この関数呼び出しを考えてみましょう。
put consolidatedSales("Ohio") into ohioSales
この場合、ローカルスクリプトにconsolidatedSales
メッセージのための"to"(または"function")ハンドラーがある場合、この関数呼び出しはそのハンドラーを実行し、それにパラメータ値"Ohio"を渡します。そのハンドラーからの戻り値は変数ohioSales
に格納されます。
consolidatedSales
関数のためのローカルハンドラーがないが、その名前のスクリプトがある場合、そのスクリプト(つまり、スクリプトの初期ハンドラー)が実行され、それに値"Ohio"を渡します。そして、そのスクリプトからの戻り値がohioSales
に格納されます。
ほとんどのケースでは、このシンプルな方法で他のスクリプトやハンドラーを呼び出すだけで十分です。コマンドや関数の呼び出しは、現在のスクリプトにメッセージを送り、それがローカルハンドラーによって処理されます。メッセージに対するローカルハンドラーがない場合、メッセージと同じ名前のローカルスクリプトに渡されます。
別のスクリプト内のハンドラーの呼び出し
Syntax:
scriptName . handlerName {parameters}
scriptName 's handlerName {parameters}Syntax:
scriptName . handlerName {parameters}
scriptName . handlerName {parameters}
たまに、他のスクリプト内のハンドラー(初期ハンドラー以外)を呼び出したい場合があります。これを行うには、ドットまたはアポストロフィs表記を使用できます。例えば、"FileUtility"というスクリプト内のto recordScores
ハンドラーをコマンドとして呼び出すには、このコマンドを使用できます:
FileUtility.recordScores 2017, rawScores
同様に、"BusinessCenter"スクリプト内のconsolidatedSales
ハンドラーを関数として呼び出すには、次のようにします:
put BusinessCenter's consolidatedSales("Ohio") into ohioSales
その他のフローコントロールコマンドと関数
これらのあまり使われていないコマンドと関数は、テストの実行フローを制御することを可能にします。
Run
コマンド
動作: scriptName スクリプトを呼び出すか、そのスクリプトの handlerName ハンドラーをコマンドとして呼び出します。HandlerName は通常、引用符なしのハンドラーの単純な名前ですが、引用されたリテラルとして、または実行時にハンドラー名を作成するための括弧内の式としても与えることができます。
Syntax:
run scriptName {,} {parameters}
run scriptName 's handlerName {parameters}
run
コマンドは、上記のような単純なコマンドでは動作しない場合に、指定したスクリプトを実行するために使用できます。例えば、フルパス名が必要であったり、スクリプトの名前にスペースや他の特殊文字が含まれている場合、または実行するスクリプトの名前が変数に格納されている場合などです。以下のコマンドは、スクリプトの初期ハンドラーを実行します:
run "/tmp/testScript.st"