local variable

ローカル変数を新規作成し、値を割り当てする。または既存のローカル変数に値を割り当てます。
名前説明タイプ修飾子
name

ローカル変数の名前です。

Stringなし
value

(任意)ローカル変数に割り当てる値です。

Stringなし
なし
このアクションは、次のプロジェクト項目で使用できます: テストモジュールおよびユーザー定義アクションです。
次の設定はこのアクションに適用可能です:  remove double quotes from cells.
例1#: テストケースの範囲を示します
アクションライン
        
        	name	value
local variable	a	5
        
    
        
        	name	value
local variable	b	10
&nbsp		
	text	
report	#a	
report	#b	
        
    
        
        	name	value
local variable	c	15
&nbsp		
	text	
report	#a	
report	#c	
        
    
        
        	name	value
local variable	d	20
&nbsp		
	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	
&nbsp		
	name	value
local variable	a	5
local variable	b	10
&nbsp		
	text	
report	#a	
report	#b	
&nbsp		
repeat for data set		
&nbsp		
	text	
report	#a	
report	#b	
        
    
結果

例#2では、次のようにします: 

  • Local variable ab は、それらが宣言されたブロックの外部からはアクセスできません。行番号36の変数 a の値と行番号37の変数 b の値はそれぞれ5と10です。一方、行番号43と44では、これらの2つの変数は未定義です。

例3#: テストモジュールの範囲を示します
アクションライン

        
        	name	value
local variable	a	5
        
    
        
        	name	value
local variable	b	10
&nbsp		
	text	
report	#a	
report	#b	
        
    

        
        	name	value
local variable	x1	1000
        
    
        
        	name	value
local variable	x2	2000
&nbsp		
	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
&nbsp		
Action 1		
&nbsp		
Action 2		
        
    
        
        	name	value
local variable	b	#a + 5
&nbsp		
	text	
report	#b	
        
    
        
        	name	value
local variable	c	#a + 25
&nbsp		
	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 の間で宣言されたローカル変数は、そのブロックの外部からはアクセスできません。

Copyright © 2023 LogiGear Corporation. All rights reserved. LogiGear is a registered trademark, and Action Based Testing and TestArchitect are trademarks of LogiGear Corporation. All other trademarks contained herein are the property of their respective owners.

LogiGear Corporation

1730 S. Amphlett Blvd. Suite 200, San Mateo, CA 94402

Tel: +1(800) 322-0333