matlab.unittest.selectors.HasParameter クラス
名前空間: matlab.unittest.selectors
スーパークラス: matlab.unittest.selectors.Selector
パラメーター化に基づいて 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")
パラメーター化プロパティの名前。string スカラー、文字ベクトル、または matlab.unittest.constraints.Constraint
オブジェクトとして指定します。プロパティ名に基づくテストの選択で適用される条件は次のとおりです。
string スカラーまたは文字ベクトルを指定した場合、テストのパラメーター化プロパティの名前が指定された値と同じでなければなりません。
制約を指定した場合、テストのパラメーター化プロパティの名前がその制約を満たさなければなりません。
この引数は PropertyConstraint
プロパティを設定します。
パラメーター名。string スカラー、文字ベクトル、または matlab.unittest.constraints.Constraint
オブジェクトとして指定します。パラメーター名に基づくテストの選択で適用される条件は次のとおりです。
string スカラーまたは文字ベクトルを指定した場合、テストのパラメーター名が指定された値と同じでなければなりません。
制約を指定した場合、テストのパラメーター名がその制約を満たさなければなりません。
この引数は NameConstraint
プロパティを設定します。
パラメーター値。任意のデータ型の値として指定します。パラメーター値に基づくテストの選択で適用される条件は次のとおりです。
制約以外の値を指定した場合、テストのパラメーター値が指定された値と同じでなければなりません。
制約を指定した場合、テストのパラメーター値がその制約を満たさなければなりません。
この引数は ValueConstraint
プロパティを設定します。
プロパティ
フィルター処理されたテスト スイートにテストを含めるためにテストのパラメーター化プロパティが満たさなければならない条件。matlab.unittest.constraints.Constraint
オブジェクトとして返されます。
このプロパティは名前と値の引数 Property
によって設定されます。
string スカラーまたは文字ベクトルを指定した場合、テスト フレームワークは、このプロパティを指定されたパラメーター化プロパティ名を期待値とする
IsEqualTo
制約に設定します。制約を指定した場合、テスト フレームワークは、このプロパティをその制約に設定します。
属性:
GetAccess | public |
SetAccess | immutable |
フィルター処理されたテスト スイートにテストを含めるためにテストのパラメーター名が満たさなければならない条件。matlab.unittest.constraints.Constraint
オブジェクトとして返されます。
このプロパティは名前と値の引数 Name
によって設定されます。
string スカラーまたは文字ベクトルを指定した場合、テスト フレームワークは、このプロパティを指定されたパラメーター名を期待値とする
IsEqualTo
制約に設定します。制約を指定した場合、テスト フレームワークは、このプロパティをその制約に設定します。
属性:
GetAccess | public |
SetAccess | immutable |
例
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 で導入空でない cell 配列をパラメーター化プロパティに代入すると、テスト フレームワークは cell 配列の要素の値、型、および次元を考慮して、それらの要素からパラメーター名を生成します。以前のリリースでは、プロパティ値が文字ベクトルの cell 配列である場合、フレームワークは cell 配列の値からパラメーター名を生成します。それ以外の場合、フレームワークはパラメーター名を value1
、value2
、…、valueN
として指定します。
コードでパラメーター名を使用してテスト スイートを作成したり、フィルター処理したりする場合は、古いパラメーター名をわかりやすいパラメーター名に置き換えてください。たとえば、suite = testsuite(pwd,"ParameterName","value1")
の value1
をわかりやすいパラメーター名に置き換えて更新します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)