Пакет: matlab.unittest.parameters
Базовый класс для параметров
В параметризованном тестировании используйте параметры, чтобы передать данные методам тестирования.
Инстанцируйте Parameter
с помощью статического метода fromData
.
Свойство
Имя свойства, которое задает Parameter
Это свойство доступно только для чтения.
Имя свойства, которое задает 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 __________
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.