Я начал делать юнит-тесты для модели Simulink. Я использовал следующий блог в качестве отправной точки. Моя тестовая функция в настоящее время похожа на это:
function tests = exampleTest
tests = functiontests(localfunctions);
end
function setupOnce(testCase)
testCase.TestData.mdlName = 'myModel';
load_system(testCase.TestData.mdlName);
end
function teardownOnce(testCase)
close_system(testCase.TestData.mdlName, 0)
end
function test1(testCase)
set_param([testCase.TestData.mdlName, '/mySubsystem'], 'myMaskParameter','1')
set_param(...);
set_param(...);
sim(testCase.TestData.mdlName);
testCase.verifyEqual(mySubsystemOutput,1)
end
function test2(testCase)
...
end
Теперь я хочу изменить этот скрипт, чтобы его можно было легко и быстро модифицировать, если я когда-либо захочу создать много тестов (например,> 100). Я пытаюсь найти способ инициализировать переменную, которая будет содержать все параметры (то есть те, которые я объявляю в set_param
) для каждого модульного теста (и, возможно, даже ожидаемые значения). Я думаю, что set_param
может быть помещено в function setup(testCase)
вместо отдельного теста, который удалил бы много строк в коде. Однако для достижения этого мне нужно знать фактический индекс testCase. Я не нашел ничего в документации или в примерах о способе доступа к этой информации. Есть ли способ? Кроме того, является ли мой подход хорошим подходом для выполнения того, что я хочу сделать (т.е. перегруппировать переменные, которые изменяются в общей функции, чтобы ограничить число строк, которые необходимо изменить)?