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

Пакет: matlab.unittest.parameters

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

Описание

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

Конструкция

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

Свойства

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

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

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

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

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

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

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

Методы

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

Примеры

свернуть все

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

Была ли эта тема полезной?