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