hi,
I'm trying to write a parameterized test where one class setup parameter depends on another one. I'm running it from a script.
myScript.m:
suite = matlab.unittest.TestSuite.fromClass(?myTest)runner = matlab.unittest.TestRunner.withTextOutput();results = runner.run(suite);
The test class is defined in a seperate file:
classdef myTest < matlab.unittest.TestCase properties(ClassSetupParameter) prop1 = foo(); prop2 = {1,2,3}; prop3 = bar(prop1); end end function foo_result = foo() foo_result = {3,4,5}; end function bar_result = bar(prop1) bar_result = prop1 -1; end
I'm getting an error:
Error using myScript (line 1)Invalid default value for property 'prop3' in class 'myTest':Undefined function or variable 'prop1'.
I have also tried seperating prop1 and prop3 to Class and Method setup parameters:
classdef myTest < matlab.unittest.TestCase properties(ClassSetupParameter) prop1 = foo(); prop2 = {1,2,3}; end properties(MethodSetupParameter) prop3 = bar(prop1); end end function foo_result = foo() foo_result = {3,4,5}; end function bar_result = bar(prop1) bar_result = prop1 -1; end
And I'm getting the same error
Any ideas how to overcome this? I really don't want to have another loop inside any test method.
I'm on Matlab 2017a
Thank you! Jack
Best Answer