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

标签 java testing cucumber bdd gherkin

我无法创建以标点符号结尾的 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查看如何使用变量和其他特殊字符。

关于java - 为什么 cucumber 不能创建以 ')' 或 '.' 结尾的 bdd 语句的步骤定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55638239/

相关文章:

java - JLabel 中心 drawString() 不同大小的文本

java - 模拟 InetSocketAddress.getAddress().getHostAddress() 失败

java - 如何记录某些测试用例故意失败?

cucumber - 如何在 Cucumber Java 中的步骤之间传递变量值?

android - Calabash:如何设置测试数据

Java分段上传到s3

java - 随着添加更多线程,Java线程似乎加快了速度

java - 大内存(数据大小)采集

java - 没有源代码的android应用程序中的方法覆盖

java - 并行 TestNG - cucumber.runtime.CucumberException : No qualifying bean of type 'com.hooks.CustomHook' available