execute method
Future<void>
execute({
- required CancelToken cancelToken,
- required TestReport report,
- required TestController tester,
Executes the step. This will looks for a function registered as
variableName. The function must have a function signature of
TestVariableFunction. The result of executing the function will be
placed in the resultVariableName, or _functionResult
if omitted.
Implementation
@override
Future<void> execute({
required CancelToken cancelToken,
required TestReport report,
required TestController tester,
}) async {
var resultVariableName =
tester.resolveVariable(this.resultVariableName) ?? '_functionResult';
var name = "$id('$variableName', '$resultVariableName')";
log(
name,
tester: tester,
);
var fun = tester.resolveVariable('{{$variableName}}');
if (fun is TestVariableFunction) {
if (cancelToken.cancelled == true) {
throw Exception('[CANCELLED]: the step has been cancelled.');
}
var result = await fun(
tester,
report,
);
tester.setTestVariable(
value: result,
variableName: resultVariableName,
);
} else {
throw Exception('$id: failing due to no function');
}
}