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