executeStep method

Future executeStep(
  1. ScenarioStatus scenarioStatus,
  2. OguretsScenarioSession scenarioSession,
  3. Map namedParams,
  4. MethodMirror mm,
  5. List params,
  6. ObjectMirror instance,
  7. StepStatus stepStatus,
)

Implementation

Future executeStep(
    ScenarioStatus scenarioStatus,
    OguretsScenarioSession scenarioSession,
    Map namedParams,
    MethodMirror mm,
    List params,
    ObjectMirror instance,
    StepStatus stepStatus) async {
  await runHookList(scenarioStatus, scenarioSession, beforeStepGlobalHooks);
  await runScenarioTags(
      scenarioStatus, scenarioSession, namedBeforeStepHooks);

  // these are the named parameters that were found in the scenario itself
  Map<Symbol, dynamic> convertedNamedParams =
      _createParameters(namedParams, mm, params, _stringMirror);

  try {
    await invokeStep(instance, mm, params, convertedNamedParams);
  } catch (e, s) {
    // move this here because the afterStep needs to know it failed.
    var failure = StepFailure(e, s.toString());

    stepStatus.failure = failure;
    scenarioStatus.failedSteps.add(stepStatus);

    rethrow;
  } finally {
    // try and ensure that the after step hooks run
    await runScenarioTags(
        scenarioStatus, scenarioSession, namedAfterStepHooks);
    await runHookList(scenarioStatus, scenarioSession, afterStepGlobalHooks);
  }
}