@Override
    public void execute(Object[] args) {
        invokeMethod(args);
    }
@Test
    void can_provide_location_of_step() throws Throwable {
        Method method = JavaStepDefinitionTest.class.getMethod("method_throws");
        JavaStepDefinition definition = new JavaStepDefinition(method, "three (.*) mice", lookup);
        CucumberInvocationTargetException exception = assertThrows(CucumberInvocationTargetException.class,
            () -> definition.execute(new Object[0]));
        Optional<StackTraceElement> match = stream(exception.getInvocationTargetExceptionCause().getStackTrace())
                .filter(definition::isDefinedAt).findFirst();
        StackTraceElement stackTraceElement = match.get();

        assertAll(
            () -> assertThat(stackTraceElement.getMethodName(), is("method_throws")),
            () -> assertThat(stackTraceElement.getClassName(), is(JavaStepDefinitionTest.class.getName())));
    }