Main Content

matlab.unittest.parameters.Parameter.fromData

クラス: matlab.unittest.parameters.Parameter
名前空間: matlab.unittest.parameters

データからパラメーターを作成

説明

param = matlab.unittest.parameters.Parameter.fromData(prop,nameVal) は、Parameter インスタンスの配列を作成します。ここで、prop はすべての Parameter 要素のパラメーター化プロパティ名を定義し、nameVal は各 Parameter 要素の名前と値を定義します。

fromData を使用すると、properties ブロックを使用してクラスベースのテスト内でパラメーターを定義した場合と同じになります。以下に例を示します。

    properties (TestParameter)
        prop = nameVal;
    end
ただし、fromData を使用すると、既存のパラメーターをテスト クラス外から再定義できます。

fromData メソッドを使用して、パラメーター化されたテストの TestParameterMethodSetupParameter、または ClassSetupParameter properties ブロックで定義されたパラメーターを再定義します。

param = matlab.unittest.parameters.Parameter.fromData(prop1,nameVal1,...,propN,nameValN) は、複数のパラメーター化プロパティ名を使用して、Parameter インスタンスを定義します。

入力引数

すべて展開する

パラメーター化プロパティの名前。string スカラーまたは文字ベクトルとして指定します。

例: "myParam"

パラメーター名と値。空でない cell 配列または構造体として指定します。

  • nameVal が cell 配列の場合、cell 配列の各要素がパラメーター値を表します。MATLAB® は、要素の値、型、および次元を考慮して、それらの要素からパラメーター名を生成します。

  • nameVal が構造体の場合、構造体フィールドはパラメーター名を表し、構造体値はパラメーター値を表します。

例: struct('small',1,'medium',10,'large',100)

例: {42,7,13}

例: {'double','single','uint16'}

すべて展開する

作業フォルダーで testZeros.m を作成します。このクラスには 5 つのテスト メソッドがあり、パラメーター化されたテストが 11 個生成されます。

classdef testZeros < matlab.unittest.TestCase
    properties (TestParameter)
        type = {'single','double','uint16'};
        outSize = struct('s2d',[3 3], 's3d',[2 5 4]);
    end
    
    methods (Test)
        function testClass(testCase, type, outSize)
            testCase.verifyClass(zeros(outSize,type), type);
        end
        
        function testSize(testCase, outSize)
            testCase.verifySize(zeros(outSize), outSize);
        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

テストで singledoubleuint16 ではなく uint64 および int64 データ型をパラメーター化に使用するよう、type パラメーターを再定義します。パラメーターを作成します。

import matlab.unittest.parameters.Parameter
newType = {'int64','uint64'};
param = Parameter.fromData('type',newType);

param パラメーターを挿入するテスト スイートを作成します。スイート内のテストの名前を表示します。挿入されたパラメーターは #ext で表されます。

import matlab.unittest.TestSuite
suite = TestSuite.fromClass(?testZeros,'ExternalParameters',param);
{suite.Name}'
ans =

  9×1 cell array

    {'testZeros/testClass(type=int64#ext,outSize=s2d)' }
    {'testZeros/testClass(type=int64#ext,outSize=s3d)' }
    {'testZeros/testClass(type=uint64#ext,outSize=s2d)'}
    {'testZeros/testClass(type=uint64#ext,outSize=s3d)'}
    {'testZeros/testSize(outSize=s2d)'                 }
    {'testZeros/testSize(outSize=s3d)'                 }
    {'testZeros/testDefaultClass'                      }
    {'testZeros/testDefaultSize'                       }
    {'testZeros/testDefaultValue'                      }

スイートを実行します。

results = suite.run;
Running testZeros
.........
Done testZeros
__________

テストで 1 次元の配列と 4 次元の配列がパラメーター化されるよう、outSize パラメーターを再定義します。newTypenewSize からパラメーターを作成します。

newSize = struct('s2d',[5 3],'s4d',[2 3 2 4]);
param = Parameter.fromData('type',newType,'outSize',newSize);

param パラメーターを挿入するテスト スイートを作成します。スイート内のテストの名前を表示します。挿入されたパラメーターは #ext で表されます。

import matlab.unittest.TestSuite
suite = TestSuite.fromClass(?testZeros,'ExternalParameters',param);
{suite.Name}'
ans =

  9×1 cell array

    {'testZeros/testClass(type=int64#ext,outSize=s2d#ext)' }
    {'testZeros/testClass(type=int64#ext,outSize=s4d#ext)' }
    {'testZeros/testClass(type=uint64#ext,outSize=s2d#ext)'}
    {'testZeros/testClass(type=uint64#ext,outSize=s4d#ext)'}
    {'testZeros/testSize(outSize=s2d#ext)'                 }
    {'testZeros/testSize(outSize=s4d#ext)'                 }
    {'testZeros/testDefaultClass'                          }
    {'testZeros/testDefaultSize'                           }
    {'testZeros/testDefaultValue'                          }

スイートを実行します。

results = suite.run;
Running testZeros
.........
Done testZeros
__________

バージョン履歴

R2018b で導入

すべて展開する