Cucumber 捕获自定义表达式 Java - 如何允许在功能步骤中输入字符串?

Cucumber Capture Custom Expressions Java - How to allow for string entry in feature steps?

我们正在尝试完全切换到 Cucumber 表达式,不再使用 Regex。我的问题是,是否可以创建一个允许在功能文件中输入字符串的类型?

例如:("second" 用户是)而不是(第二个用户是)

这是我正在使用的自定义 paramType 方法。

registry.defineParameterType(new ParameterType<>(
                "universalKey",
                "1st|first|2nd|second|3rd|third",
                String.class,
                (String arg) -> arg
        ));

目前它不允许输入任何字符串,但我想用引号将其保留下来以避免重做很多功能 files/steps。

您可以尝试使用反斜杠“\”转义双引号。

the \"second\" user is

参考这里 - https://cucumber.io/docs/cucumber/cucumber-expressions/#escaping

我最终弄明白了,虽然没有使用它,但以下是我们是如何做到的:

registry.defineParameterType(new ParameterType<>(
            "numbers",
            "\"(1st)"\|\"(first)"\|\"(2nd)"\|\"(second)"\",
            String.class,
            (String arg) -> arg
    ));