我有一个像这样实施的步骤:
@When("I add an attribute named '(.+)' with unit '(.+)' to the item named '(.+)'")
public void addAttributeToAndItem(String attributeName, String unitName, String itemName){
.....
}
在我的Cucumber场景中,我想添加和归属没有单位,所以“单位名称”的值应为空字符串。如何在我的场景步骤中指定这个空字符串。
我试过这个:
Scenario: add attribute to an item
When I add an attribute named 'Color' with unit ' ' to the item named ' Car'
但它不起作用。 ''总是看起来像一个值(空格)而不是空字符串。请有人帮帮我吗?
答案 0 :(得分:3)
您可以将其更改为''
,但由于(.+)
至少会匹配其中任何一项,因此使用''
将与该步骤不匹配。
尝试在步骤定义中使用(.*)
来匹配空字符串,即''
答案 1 :(得分:0)
我不明白为什么你需要知道单位是一个空字符串。如果您按照上述建议并输入''
,则(.+)
或(.*)
将捕获两个撇号。您可以添加以下断言行以确认:
assert '' == unit
应该失败
assert "''" = unit
应该通过
可能有一种方法可以让它与可选的捕获一起使用,但我的正则表达式技能是不够的,我得到了未定义的步骤。