Main Content

matlab.unittest.selectors.HasParameter クラス

名前空間: matlab.unittest.selectors

パラメーター化に基づいて TestSuite 配列要素を選択

説明

matlab.unittest.selectors.HasParameter クラスは、パラメーター化に基づいてテスト スイートをフィルター処理するセレクターを提供します。パラメーター化されたテストの詳細については、クラスベースのテストでのパラメーターの使用を参照してください。

クラスの属性

Sealed
true

クラス属性の詳細については、クラスの属性を参照してください。

作成

説明

selector = matlab.unittest.selectors.HasParameter は、パラメーター化されたすべての TestSuite 配列要素を選択するセレクターを作成します。

selector = matlab.unittest.selectors.HasParameter(Name,Value) は、1 つ以上の名前と値の引数で指定された追加オプションを使用してセレクターを作成します。たとえば、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

フィルター処理されたテスト スイートにテストを含めるためにテストのパラメーター値が満たさなければならない条件。matlab.unittest.constraints.Constraint オブジェクトとして返されます。

このプロパティは名前と値の引数 Value によって設定されます。

  • 制約以外の値を指定した場合、テスト フレームワークは、このプロパティを指定されたパラメーター値を期待値とする IsEqualTo 制約に設定します。

  • 制約を指定した場合、テスト フレームワークは、このプロパティをその制約に設定します。

属性:

GetAccess
public
SetAccess
immutable

すべて折りたたむ

HasParameter クラスを使用してテストを選択して、フィルター処理されたテスト スイートを作成します。

現在のフォルダー内の ZerosTest.m という名前のファイルに、関数 zeros をテストする ZerosTest クラスを作成します。クラスには 2 つのパラメーター化された Test メソッド testClasstestSize があります。

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 で導入

すべて展開する