matlab.unittest.parameters.

Класс: matlab.unittest.parameters.
Пакет: matlab.unittest.parameters

Создайте параметры из данных

Синтаксис

param = matlab.unittest.parameters.Parameter.fromData(prop,nameVal)
param = matlab.unittest.parameters.Parameter.fromData(prop1,nameVal1,...,propN,nameValN)

Описание

пример

param = matlab.unittest.parameters.Parameter.fromData(prop,nameVal) создает массив экземпляров Parameter, где prop задает имя свойства параметризации всех элементов Parameter, и nameVal задает имя и значение для каждого элемента Parameter.

Используя fromData походит на параметры определения в основанном на классах тесте с помощью блока properties. Например:

properties (TestParameter)
    prop = nameVal
end
Однако с fromData можно переопределить существующие тестовые параметры снаружи тестового класса.

Используйте метод fromData, чтобы переопределить параметры, заданные в TestParameter, MethodSetupParameter или блоке ClassSetupParameter properties параметризованного теста.

пример

param = matlab.unittest.parameters.Parameter.fromData(prop1,nameVal1,...,propN,nameValN) задает экземпляры Parameter с несколькими именами свойства параметризации.

Входные параметры

развернуть все

Параметризация имени свойства, заданного как вектор символов или строка.

Пример: 'myParam'

Название параметра и значение, заданное как непустой массив ячеек или struct.

Если nameVal является struct, поле struct представляет название параметра, и значение struct представляет значение параметров. Если nameVal является массивом ячеек, каждый элемент представляет значение параметров.

Если nameVal является массивом ячеек из символьных векторов, названия параметра сгенерированы от значений. В противном случае MATLAB® генерирует названия параметра.

Пример: struct('small', 1, 'medium', 10, 'large', 100)

Пример: {42,7,13}

Пример: {'double','single','uint16'}

Примеры

развернуть все

В вашей рабочей папке создайте testZeros.m. Этот класс содержит пять методов тестирования, приводящих к одиннадцати параметризованным тестам.

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

Переопределите параметр type так, чтобы тест использовал uint64 и типы данных int64 в параметризации вместо single, double и uint16. Создайте параметры.

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
__________

Переопределите параметр outSize так, чтобы тест параметризовал для 1-d и 4-d массивов. Создайте параметры из newType и newSize.

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

Для просмотра документации необходимо авторизоваться на сайте