def METHOD_NAME(self):
    step_container = SimpleStepContainer()
    with use_step_import_modules(step_container):
        # -- STEP-DEFINITIONS EXAMPLE (as MODULE SNIPPET):
        # VARIANT 1: Use async def step_impl()
        # pylint: disable=import-outside-toplevel, unused-argument
        from behave import step
        from behave.api.async_step import async_run_until_complete
        import asyncio
        @step('an async coroutine step waits "{duration:f}" seconds')
        @async_run_until_complete
        async def step_async_step_waits_seconds(context, duration):
            await asyncio.sleep(duration)
    # pylint: enable=import-outside-toplevel, unused-argument
    # -- USES: async def step_impl(...) as async-step (coroutine)
    AsyncStepTheory.validate(step_async_step_waits_seconds)
    # -- RUN ASYNC-STEP: Verify that it is behaving correctly.
    # ENSURE: Execution of async-step matches expected duration.
    context = Context(runner=Runner(config={}))
    with StopWatch() as stop_watch:
        step_async_step_waits_seconds(context, 0.2)
    # DISABLED: assert abs(stop_watch.duration - 0.2) <= 0.05
    assert_that(stop_watch.duration, close_to(0.2, delta=SLEEP_DELTA))