【问题标题】:Cucumber Scenario : giving an empty String as value of parameter in a scenario stepCucumber 场景:在场景步骤中给出一个空字符串作为参数值
【发布时间】:2015-03-03 18:13:30
【问题描述】:

我有这样一个步骤:

@When("I add an attribute named '(.+)' with unit '(.+)' to the item named '(.+)'")
public void addAttributeToAndItem(String attributeName, String unitName, String itemName){
     .....
}

在我的黄瓜场景中,我想添加和属性没有单位,所以“单位名称”的值应该是空字符串。如何在我的场景步骤中指定这个空字符串。

我试过这个:

    Scenario: add attribute to an item
        When  I add an attribute named 'Color' with unit ' ' to the item named ' Car'

但它不起作用。 ' ' 总是看起来是一个值(一个空格),而不是一个空字符串。请问有人可以帮我吗?

【问题讨论】:

  • ' ' 是一个空格。将'' 用于空字符串或在测试步骤代码中使用其他被理解为空的内容
  • 你要解决的实际问题是什么,如果 是颜色的单位,会发生什么糟糕的事情。

标签: java cucumber bdd


【解决方案1】:

您可以将其更改为'',但由于(.+) 将匹配任何一项中的至少一项,因此使用'' 将无法匹配该步骤。

尝试在您的步骤定义中使用(.*),它将匹配一个空字符串,即''

【讨论】:

    【解决方案2】:

    我不明白为什么您需要知道该单位是空字符串。如果您按照上述建议输入'',则(.+)(.*) 将捕获两个撇号。您可以添加以下断言行来确认:

    assert '' == unit 应该失败

    assert "''" = unit 应该通过

    可能有一种方法可以让它与可选捕获一起使用,但是我的正则表达式技能不足,并且我得到了未定义的步骤。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-25
      • 2021-12-06
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 2023-02-03
      相关资源
      最近更新 更多