matlab.unittest.selectors.HasParameter クラス
名前空間: matlab.unittest.selectors
パラメーター化に基づいて TestSuite
配列要素を選択
説明
matlab.unittest.selectors.HasParameter
クラスは、パラメーター化に基づいてテスト スイートをフィルター処理するセレクターを提供します。パラメーター化されたテストの詳細については、クラスベースのテストでのパラメーターの使用を参照してください。
作成
説明
selector = matlab.unittest.selectors.HasParameter(
は、1 つ以上の名前と値の引数で指定された追加オプションを使用してセレクターを作成します。たとえば、Name,Value
)selector = matlab.unittest.selectors.HasParameter("Property","type")
は、パラメーター化プロパティ "type"
をもつパラメーター化されたテストをすべて選択するセレクターを作成します。
入力引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
例: selector = matlab.unittest.selectors.HasParameter(Property="type")
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: selector = matlab.unittest.selectors.HasParameter("Property","type")
Property
— パラメーター化プロパティ名
string スカラー | 文字ベクトル | matlab.unittest.constraints.Constraint
オブジェクト
パラメーター化プロパティの名前。string スカラー、文字ベクトル、または matlab.unittest.constraints.Constraint
オブジェクトとして指定します。プロパティ名に基づくテストの選択で適用される条件は次のとおりです。
string スカラーまたは文字ベクトルを指定した場合、テストのパラメーター化プロパティの名前が指定された値と同じでなければなりません。
制約を指定した場合、テストのパラメーター化プロパティの名前がその制約を満たさなければなりません。
この引数は PropertyConstraint
プロパティを設定します。
Name
— パラメーター名
string スカラー | 文字ベクトル | matlab.unittest.constraints.Constraint
オブジェクト
パラメーター名。string スカラー、文字ベクトル、または matlab.unittest.constraints.Constraint
オブジェクトとして指定します。パラメーター名に基づくテストの選択で適用される条件は次のとおりです。
string スカラーまたは文字ベクトルを指定した場合、テストのパラメーター名が指定された値と同じでなければなりません。
制約を指定した場合、テストのパラメーター名がその制約を満たさなければなりません。
この引数は NameConstraint
プロパティを設定します。
Value
— パラメーター値
任意の値
パラメーター値。任意のデータ型の値として指定します。パラメーター値に基づくテストの選択で適用される条件は次のとおりです。
制約以外の値を指定した場合、テストのパラメーター値が指定された値と同じでなければなりません。
制約を指定した場合、テストのパラメーター値がその制約を満たさなければなりません。
この引数は ValueConstraint
プロパティを設定します。
プロパティ
PropertyConstraint
— パラメーター化プロパティが満たさなければならない条件
matlab.unittest.constraints.Constraint
オブジェクト
フィルター処理されたテスト スイートにテストを含めるためにテストのパラメーター化プロパティが満たさなければならない条件。matlab.unittest.constraints.Constraint
オブジェクトとして返されます。
このプロパティは名前と値の引数 Property
によって設定されます。
string スカラーまたは文字ベクトルを指定した場合、テスト フレームワークは、このプロパティを指定されたパラメーター化プロパティ名を期待値とする
IsEqualTo
制約に設定します。制約を指定した場合、テスト フレームワークは、このプロパティをその制約に設定します。
属性:
GetAccess | public |
SetAccess | immutable |
NameConstraint
— パラメーター名が満たさなければならない条件
matlab.unittest.constraints.Constraint
オブジェクト
フィルター処理されたテスト スイートにテストを含めるためにテストのパラメーター名が満たさなければならない条件。matlab.unittest.constraints.Constraint
オブジェクトとして返されます。
このプロパティは名前と値の引数 Name
によって設定されます。
string スカラーまたは文字ベクトルを指定した場合、テスト フレームワークは、このプロパティを指定されたパラメーター名を期待値とする
IsEqualTo
制約に設定します。制約を指定した場合、テスト フレームワークは、このプロパティをその制約に設定します。
属性:
GetAccess | public |
SetAccess | immutable |
ValueConstraint
— パラメーター値が満たさなければならない条件
matlab.unittest.constraints.Constraint
オブジェクト
例
パラメーター化に基づくテストの選択
HasParameter
クラスを使用してテストを選択して、フィルター処理されたテスト スイートを作成します。
現在のフォルダー内の ZerosTest.m
という名前のファイルに、関数 zeros
をテストする ZerosTest
クラスを作成します。クラスには 2 つのパラメーター化された Test
メソッド testClass
と testSize
があります。
classdef ZerosTest < matlab.unittest.TestCase properties (TestParameter) type = {'single','double','uint16'}; size = struct("s2d",[3 3],"s3d",[2 5 4]); end methods (Test) function testClass(testCase,size,type) testCase.verifyClass(zeros(size,type),type) end function testSize(testCase,size) testCase.verifySize(zeros(size),size) end function testDefaultClass(testCase) testCase.verifyClass(zeros,"double") end function testDefaultSize(testCase) testCase.verifySize(zeros,[1 1]) end function testDefaultValue(testCase) testCase.verifyEqual(zeros,0) end end end
この例で使用するクラスをインポートします。
import matlab.unittest.TestSuite import matlab.unittest.selectors.HasParameter import matlab.unittest.constraints.StartsWithSubstring import matlab.unittest.constraints.HasLength
ZerosTest
クラスからテスト スイートを作成し、テスト名を表示します。スイートには 11 個の Test
要素が含まれています。
suite = testsuite("ZerosTest");
disp({suite.Name}')
{'ZerosTest/testClass(size=s2d,type=single)'} {'ZerosTest/testClass(size=s2d,type=double)'} {'ZerosTest/testClass(size=s2d,type=uint16)'} {'ZerosTest/testClass(size=s3d,type=single)'} {'ZerosTest/testClass(size=s3d,type=double)'} {'ZerosTest/testClass(size=s3d,type=uint16)'} {'ZerosTest/testSize(size=s2d)' } {'ZerosTest/testSize(size=s3d)' } {'ZerosTest/testDefaultClass' } {'ZerosTest/testDefaultSize' } {'ZerosTest/testDefaultValue' }
パラメーター化されたテストをすべて選択して、フィルター処理されたテスト スイートを作成します。
suite1 = suite.selectIf(HasParameter); disp({suite1.Name}')
{'ZerosTest/testClass(size=s2d,type=single)'} {'ZerosTest/testClass(size=s2d,type=double)'} {'ZerosTest/testClass(size=s2d,type=uint16)'} {'ZerosTest/testClass(size=s3d,type=single)'} {'ZerosTest/testClass(size=s3d,type=double)'} {'ZerosTest/testClass(size=s3d,type=uint16)'} {'ZerosTest/testSize(size=s2d)' } {'ZerosTest/testSize(size=s3d)' }
パラメーター化されていないテストをすべて選択します。
suite2 = suite.selectIf(~HasParameter); disp({suite2.Name}')
{'ZerosTest/testDefaultClass'} {'ZerosTest/testDefaultSize' } {'ZerosTest/testDefaultValue'}
パラメーター化プロパティが "type"
でパラメーター名が "double"
であるパラメーター化されたテストをすべて選択します。
suite3 = suite.selectIf(HasParameter("Property","type","Name","double")); disp({suite3.Name}')
{'ZerosTest/testClass(size=s2d,type=double)'} {'ZerosTest/testClass(size=s3d,type=double)'}
名前が "t"
で始まるパラメーター化プロパティをもつパラメーター化されたテストをすべて選択します。
suite4 = suite.selectIf(HasParameter("Property",StartsWithSubstring("t"))); disp({suite4.Name}')
{'ZerosTest/testClass(size=s2d,type=single)'} {'ZerosTest/testClass(size=s2d,type=double)'} {'ZerosTest/testClass(size=s2d,type=uint16)'} {'ZerosTest/testClass(size=s3d,type=single)'} {'ZerosTest/testClass(size=s3d,type=double)'} {'ZerosTest/testClass(size=s3d,type=uint16)'}
関数 zeros
が 2 次元の配列を返す場合にその関数 (zeros(2)
や zeros(2,3)
など) をテストするパラメーター化されたテストをすべて選択します。
suite5 = suite.selectIf(HasParameter("Property","size", ... "Value",HasLength(1) | HasLength(2))); disp({suite5.Name}')
{'ZerosTest/testClass(size=s2d,type=single)'} {'ZerosTest/testClass(size=s2d,type=double)'} {'ZerosTest/testClass(size=s2d,type=uint16)'} {'ZerosTest/testSize(size=s2d)' }
2 次元の double
配列についてテストするテストのみを含めて、フィルター処理されたテスト スイートを ZerosTest
クラスから直接作成します。
suite6 = TestSuite.fromClass(?ZerosTest, ... HasParameter("Property","type","Name","double") & ... HasParameter("Property","size","Name","s2d")); disp({suite6.Name}')
{'ZerosTest/testClass(size=s2d,type=double)'}
バージョン履歴
R2014a で導入R2022b: cell 配列からよりわかりやすいパラメーター名を生成
空でない cell 配列をパラメーター化プロパティに代入すると、テスト フレームワークは cell 配列の要素の値、型、および次元を考慮して、それらの要素からパラメーター名を生成します。以前のリリースでは、プロパティ値が文字ベクトルの cell 配列である場合、フレームワークは cell 配列の値からパラメーター名を生成します。それ以外の場合、フレームワークはパラメーター名を value1
、value2
、…、valueN
として指定します。
コードでパラメーター名を使用してテスト スイートを作成したり、フィルター処理したりする場合は、古いパラメーター名をわかりやすいパラメーター名に置き換えてください。たとえば、suite = testsuite(pwd,"ParameterName","value1")
の value1
をわかりやすいパラメーター名に置き換えて更新します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)