/**
  * @param AfterStepTested $event
  */
 public function onAfterStepTested(AfterStepTested $event)
 {
     $result = $event->getTestResult();
     //$this->dumpObj($event->getStep()->getArguments());
     /** @var Step $step */
     $step = new Step();
     $step->setKeyword($event->getStep()->getKeyword());
     $step->setText($event->getStep()->getText());
     $step->setLine($event->getStep()->getLine());
     $step->setArguments($event->getStep()->getArguments());
     $step->setResult($result);
     $step->setResultCode($result->getResultCode());
     //What is the result of this step ?
     if (is_a($result, 'Behat\\Behat\\Tester\\Result\\UndefinedStepResult')) {
         //pending step -> no definition to load
         $this->pendingSteps[] = $step;
     } else {
         if (is_a($result, 'Behat\\Behat\\Tester\\Result\\SkippedStepResult')) {
             //skipped step
             /** @var ExecutedStepResult $result */
             $step->setDefinition($result->getStepDefinition());
             $this->skippedSteps[] = $step;
         } else {
             //failed or passed
             if ($result instanceof ExecutedStepResult) {
                 $step->setDefinition($result->getStepDefinition());
                 $exception = $result->getException();
                 if ($exception) {
                     $step->setException($exception->getMessage());
                     $this->failedSteps[] = $step;
                 } else {
                     $step->setOutput($result->getCallResult()->getStdOut());
                     $this->passedSteps[] = $step;
                 }
             }
         }
     }
     $this->currentScenario->addStep($step);
     $print = $this->renderer->renderAfterStep($this);
     $this->printer->writeln($print);
 }