Пакет: matlab.unittest.parameters
Базовый класс для параметров
В параметрированном тестировании используйте параметры, чтобы передать данные методам тестирования.
Инстанцируйте Parameter использование статического fromData метод.
Property — Имя свойства, которое задает ParameterЭто свойство доступно только для чтения.
Имя свойства, которое задает Parameter, сохраненный как вектор символов.
Name — Имя значения параметровЭто свойство доступно только для чтения.
Имя значения параметров, сохраненное как вектор символов. Name однозначно определяет особое значение для параметра.
Value — Значение параметровЭто свойство доступно только для чтения.
Значение параметров, сохраненное как любой тип массива. 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.