runStep method
Future<StepResult>
runStep(
- String step,
- Iterable<
String> multiLineStrings, - dynamic table,
- TestDependencies dependencies,
Implementation
@protected
Future<StepResult> runStep(
String step,
Iterable<String> multiLineStrings,
dynamic table,
TestDependencies dependencies,
) async {
final executable = _executableSteps!.firstWhereOrNull(
(s) => s.expression.isMatch(step),
);
if (executable == null) {
final message = 'Step definition not found for text: `$step`';
throw GherkinStepNotDefinedException(message);
}
var parameters = _getStepParameters(
step,
multiLineStrings,
table,
executable,
);
await _onBeforeStepRun(
dependencies.world,
step,
table,
multiLineStrings,
);
final result = await executable.step.run(
dependencies.world,
reporter,
configuration.defaultTimeout,
parameters,
);
await _onAfterStepRun(
step,
result,
dependencies,
);
if (result.result == StepExecutionResult.fail) {
throw TestFailure('Step: $step \n\n${result.resultReason}');
} else if (result is ErroredStepResult) {
throw result.exception;
}
return result;
}