Main Content

matlab.unittest.selectors.HasName クラス

名前空間: matlab.unittest.selectors

名前に基づいて TestSuite 配列要素を選択

説明

matlab.unittest.selectors.HasName クラスは、テストの名前に基づいてテスト スイートをフィルター処理するセレクターを提供します。

特定のテスト ファイルにおいて、テストの名前はテスト内容のうち実行可能な最小部分を一意に識別します。テストの名前には、名前空間名、ファイル名 (拡張子を除く)、プロシージャ名、およびパラメーター化に関する情報が含まれます。

クラスの属性

Sealed
true

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

作成

説明

selector = matlab.unittest.selectors.HasName(name) は、名前が指定された値と一致する TestSuite 配列要素を選択するセレクターを作成します。

入力引数

すべて展開する

テストの名前。string スカラー、文字ベクトル、または matlab.unittest.constraints.Constraint オブジェクトとして指定します。名前に基づくテストの選択で適用される条件は次のとおりです。

  • string スカラーまたは文字ベクトルを指定した場合、テストの名前が指定された値と同じでなければなりません。

  • 制約を指定した場合、テストの名前がその制約を満たさなければなりません。

この引数は Constraint プロパティを設定します。

プロパティ

すべて展開する

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

このプロパティは入力引数 name によって設定されます。

  • string スカラーまたは文字ベクトルを指定した場合、テスト フレームワークは、このプロパティを指定されたテスト名を期待値とする IsEqualTo 制約に設定します。

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

属性:

GetAccess
public
SetAccess
immutable

すべて折りたたむ

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

現在のフォルダー内の ZerosTest.m という名前のファイルに、関数 zeros をテストする ZerosTest クラスを作成します。

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.HasName
import matlab.unittest.constraints.ContainsSubstring

ZerosTest クラスからテスト スイートを作成します。その後、TestSuite 配列要素の名前を表示します。それぞれの名前にクラスの名前および対応する 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'               }

特定のテストをその名前を使用して選択します。フィルター処理されたテスト スイートに単一の Test 要素が含まれます。

suite1 = suite.selectIf(HasName("ZerosTest/testDefaultClass"));
disp({suite1.Name}')
    {'ZerosTest/testDefaultClass'}

名前に "Size" または "Value" を含むテストをすべて選択します。

suite2 = suite.selectIf(HasName(ContainsSubstring("Size")) | ...
    HasName(ContainsSubstring("Value")));
disp({suite2.Name}')
    {'ZerosTest/testSize(size=s2d)'}
    {'ZerosTest/testSize(size=s3d)'}
    {'ZerosTest/testDefaultSize'   }
    {'ZerosTest/testDefaultValue'  }

部分文字列 "Class" を名前に含むテストのみを含めて、フィルター処理されたテスト スイートを ZerosTest クラスから直接作成します。

suite3 = TestSuite.fromClass(?ZerosTest, ...
    HasName(ContainsSubstring("Class")));
disp({suite3.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/testDefaultClass'               }

バージョン履歴

R2014a で導入

すべて展開する