/**
  * @param Node\Step  $step
  * @param TestResult $result
  */
 protected function processStep(Node\Step $step, TestResult $result)
 {
     // Pended
     if (is_a($result, Result\UndefinedStepResult::class)) {
         $this->pendingSteps[] = $step;
         return;
     }
     // Skipped
     if (is_a($result, Result\SkippedStepResult::class)) {
         $step->setDefinition($result->getStepDefinition());
         $this->skippedSteps[] = $step;
         return;
     }
     // Failed or passed
     if (is_a($result, Result\ExecutedStepResult::class)) {
         $step->setDefinition($result->getStepDefinition());
         $exception = $result->getException();
         if ($exception) {
             $step->setException($exception->getMessage());
             $this->failedSteps[] = $step;
         } else {
             $this->passedSteps[] = $step;
         }
         return;
     }
 }