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