I have some small test step for VNA, like VNA_Preset, VNA_Sweep, VNA_ReadData. Now I have a complicated test need to sweep VNA and get Data several times, and then do some calculation. I am wondering if I can create a high level test step to create these small VNA test step and invoke them inside the high level test step run().
Yes, that is a perfectly fine design.
You can add the specific test steps in the constructor if the sequence of steps is always the same.
You can use RunChildSteps() to run all child steps, or RunChildStep(step) to run a specific step or to control the order.
Child steps can get a reference to their parent through
GetParent<T>, which will search for a parent of type T.
Check the verdict for errors, if you want to handle the case when something goes wrong during your sequence of steps. Especially if you want to rerun a step - you might need to clear the verdict on the ‘sweep’ step when recovering from an error.