private Object skipStepMethod(final Object obj, Method method, final Object[] args, final MethodProxy proxy) throws Exception { if ((aPreviousStepHasFailed() || testAssumptionViolated()) && (!shouldExecuteNestedStepsAfterFailures())) { notifySkippedStepStarted(obj, method, args); notifySkippedStepFinishedFor(method, args); return appropriateReturnObject(obj, method); } else { notifySkippedStepStarted(obj, method, args); return skipTestStep(obj, method, args, proxy); } }