@Override
    public void postProcessTestInstance(Object testInstance, ExtensionContext context) {
        ScenarioBase currentScenario = ScenarioHolder.get().getScenarioOfCurrentThread();

        ScenarioBase scenario;
        if (testInstance instanceof ScenarioTestBase) {
            scenario = ((ScenarioTestBase<?, ?, ?>) testInstance).getScenario();
        } else {
            scenario = currentScenario == null ? new ScenarioBase() : currentScenario;
        }

        if (scenario != currentScenario) {
            ReportModel reportModel = (ReportModel) context.getStore(NAMESPACE).get(REPORT_MODEL);
            scenario.setModel(reportModel);
            ScenarioHolder.get().setScenarioOfCurrentThread(scenario);
        }

        scenario.getExecutor().injectStages(testInstance);
        scenario.getExecutor().readScenarioState(testInstance);
    }
This extension enables JGiven for JUnit 5 Tests.
<p>
Just annotate your test class with {@code @ExtendWith( JGivenExtension.class )}
<p>
You can then inject stage classes by using the {@see ScenarioStage} annotation
<p>
As an alternative you can also inherit from one of the following predefined base classes:
<ul>
    <li>{@link ScenarioTest}</li>
    <li>{@link SimpleScenarioTest}</li>
</ul>

@see ScenarioTest
@see SimpleScenarioTest
jgiven-junit5/src/main/java/com/tngtech/jgiven/junit5/JGivenExtension.java