local variable
ローカル変数を新規作成し、値を割り当てする。または既存のローカル変数に値を割り当てます。
名前 | 説明 | タイプ | 修飾子 |
---|---|---|---|
name | ローカル変数の名前です。 | String | なし |
value | (任意)ローカル変数に割り当てる値です。 | String | なし |
なし
このアクションは、次のプロジェクト項目で使用できます: テストモジュールおよびユーザー定義アクションです。
例1#: テストケースの範囲を示します
アクションライン
name value
local variable a 5
name value
local variable b 10
 
text
report #a
report #b
name value
local variable c 15
 
text
report #a
report #c
name value
local variable d 20
 
text
report #a
report #b
report #c
report #d
結果
例#1では、次のようにします:
- Local variable a はINITIALセクションで宣言されているため、テストモジュール全体でアクセス可能です。行番号20, 30, 40での変数 a の値は5です。
- Local variable b はテストケース TC 01 内で宣言されているため、そのテストケース内でのみアクセス可能です。行番号21での変数 b の値は10であり、一方、行番号41で b が参照されているところでは未定義です。
- 同様に、local variable c はテストケースTC 02内でのみアクセス可能です。行番号31での変数 c の値は15であり、行番号42で使用されると未定義です。
- Local variable d は行番号37で宣言された後、その宣言のあるテストモジュール内でどこからでもアクセス可能です。行番号43での変数 d の値は20です。
ブロックの範囲を示します(use data set/repeat for data set)
アクションライン
name filter
use data set /Car Rental
 
name value
local variable a 5
local variable b 10
 
text
report #a
report #b
 
repeat for data set
 
text
report #a
report #b
結果
例#2では、次のようにします:
- Local variable a と b は、それらが宣言されたブロックの外部からはアクセスできません。行番号36の変数 a の値と行番号37の変数 b の値はそれぞれ5と10です。一方、行番号43と44では、これらの2つの変数は未定義です。
例3#: テストモジュールの範囲を示します
アクションライン
name value
local variable a 5
name value
local variable b 10
 
text
report #a
report #b
name value
local variable x1 1000
name value
local variable x2 2000
 
text
report #a
結果
例#3では、次のようにします:
- テストモジュール「サンプル1」内で宣言された local variable a は、そのテストモジュールの外部からはアクセスできず、この local variable はテストモジュール内の全てのテストケースで見えます。テストモジュール「サンプル1」の行番号20での変数 a の値は5です。しかし、テストモジュール「サンプル2」の行番号20での変数 a は未定義です。なぜならサンプル2内で a が宣言されていないからです。
例4#: アクションの範囲を示します
アクションライン
name value
local variable a 5
 
Action 1
 
Action 2
name value
local variable b #a + 5
 
text
report #b
name value
local variable c #a + 25
 
text
report #c
結果
例#4では、次のようにします:
- Local variable a はテストケース TC 01 で宣言され、 TC 01 セクションはアクション Action1 と Action2 を呼び出します。変数 a は TC 01 内で見え、 Action1 と Action2 の両方からアクセスできます。それらのアクションはどちらも TC 01 の子供です。したがって、変数 b の値は10になり、変数 c の値は30になります。
- 指定されたローカル変数の実行について、名前が既に存在する変数を指定し、その変数のスコープが新しく作成される変数と同一である場合、この操作は新しい変数を作成せずに、既存の変数に新しい値(引数 value に指定された値)を割り当てるだけです。
- 使用制限:
- 変数は、その名前がデータセットのヘッダーのいずれかと同じである場合、use data set ブロック内で宣言できません。
- 同じ名前のローカル変数とグローバル変数は、同じローカル変数スコープレベル内で宣言できません。
使用法
グローバル変数とは異なり、ローカル変数は、宣言された場所に応じて制限されたスコープを持ちます。
- 最初のテストケースより前に宣言された全てのローカル変数(
INITIAL
セクションの有無にかかわらず)は、テストモジュール全体、FINAL
セクションを含む、にスコープを持ちます(このような変数はINITIAL
することを推奨します)。 - ローカル変数が
TEST CASE
セクション内で宣言された場合、そのローカル変数のスコープはそのテストケースに制限されます。 - ローカル変数が
FINAL
セクション内で宣言された場合、そのローカル変数のスコープはその宣言からテストモジュールの終了まで続きます。 - ローカル変数がアクション内で宣言された場合、そのローカル変数は宣言の後に続くアクション全体でスコープを持ちますが、それを呼び出しチェーンの上位のアクションやテストモジュールにはスコープが及びません。スコープの観点から、アクション引数はアクションの最初に宣言されたローカル変数と同じです。
上記の全てのケースにおいて、特定のポイントでスコープを持つローカル変数は、そのポイントで発生する全てのアクション呼び出しの呼び出しチェーン全体でスコープを持ち続けることに注意する必要があります。つまり、例えば、テストケース内でローカル変数が宣言された場合、そのスコープはテストケース内で呼び出される全てのアクションに広がり、それらによって呼び出される全てのアクションにも影響を及ぼします。
use data set ブロック内では、以下のようなことが起こります:
- TestArchitect は、use data set bブロックに対してブロックスコープをサポートしています。したがって、アクション use data set とその関連する repeat for data set の間で宣言されたローカル変数は、そのブロックの外部からはアクセスできません。