exponenta event banner

matlab.unittest.parameters.Класс параметров

Пакет: 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 таким образом, тест параметризуется для одно- и четырехмерных массивов. Создать параметры из 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