public void finished() throws Throwable {
        if (state == FINISHED) {
            return;
        }

        State previousState = state;

        state = FINISHED;
        methodInterceptor.enableMethodInterception(false);

        try {
            if (previousState == STARTED) {
                callFinishLifeCycleMethods();
            }
        } finally {
            listener.scenarioFinished();
        }
    }
Has to be called when the scenario is finished in order to execute after methods.
jgiven-core/src/main/java/com/tngtech/jgiven/impl/ScenarioExecutor.java