matlab.unittest.parameters.Parameter class

Пакет: matlab.unittest.parameters

Базовый класс для параметров

Описание

В параметризованном тестировании используйте параметры, чтобы передать данные методам тестирования.

Конструкция

Инстанцируйте Parameter использование статического fromData метод.

Свойства

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

Это свойство доступно только для чтения.

Имя свойства, которое задает Parameter, сохраненный как вектор символов.

Это свойство доступно только для чтения.

Имя значения параметров, сохраненное как вектор символов. Name однозначно определяет особое значение для параметра.

Это свойство доступно только для чтения.

Значение параметров, сохраненное как любой тип массива. Value содержит данные что TestRunner передачи в параметризованный метод.

Методы

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

Примеры

свернуть все

В вашей рабочей папке создайте 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