为什么 Cucumber 不能创建以 ')' 或 '.' 结尾的 bdd 语句的步骤定义?

Why can't cucumber create step definition of bdd sentences that is end with ')' or '.'?

我无法创建以标点符号结尾的 bdd 句子的步骤定义。

它将这个句子创建为 'null'

When I search "user X" in search field 'id (username)'
And I click on search button
@When("null")
    public void ıSearchInSearchFieldidUsername(String arg0) {
    }

我期待这样的事情:

@When("^I search \"([^\"]*)\" in search field 'id (username)")

编辑:这句话我也得到了相同的结果:

When I search "user X" in search field 'id. username'

Gherkin 旨在以更自然的语言表达业务需求,而不是开发人员的实际语法。换句话说,您可能只想简单地描述字段,而不是使用代码中的确切字段名称。除非您打算在测试代码中使用它,否则无需在该句子中创建变量(使用引号或其他特殊字符)。但是在这个例子中你似乎没有任何替代变量可以提供,看起来你只是在设置场景。所以只描述基本场景。尝试听起来更像自然语言的东西,例如:

When I enter a name in the username search field
And I click on the search button

检查 Gherkin documentation 以了解如何使用变量和其他特殊字符。