如何在黄瓜java绑定中定义步骤定义时使用varargs的强大功能。我有下面的步骤
Given I have following product: prod1, prod2, prod3
我的步骤定义
@Given("^I have following product [(exhaustive list of products or pattern of the product names)]$")
public void stepDef(String...args)
{
//Process varargs array "args" in here
}
我知道解决方法可以是除了冒号后的完整字符串,然后在代码中使用split(",")拆分字符串并将其转储到数组中。但我只是想知道黄瓜本身是否支持varargs模式。
TIA !!!
答案 0 :(得分:10)
我不知道黄瓜是否支持varargs,但也许你可以通过直接列表匹配来达到你的目标?
您可以在黄瓜的功能文件中定义示例列表
您可以在步骤结束时定义它们:
@Given i want a list
|Entry1|
|Entry2|
或内联:
@Given i want a list: Entry1, Entry2
然后你可以使用胶水代码:
@Given(^i want a list$)
public void i_want_a_list(List<String> entries) {
//do stuff
}
@Given(^i want a list: (.*)$)
public void i_want_a_list(List<String> entries){
//Do something with the list
}
您可以在此处找到更多信息:https://cukes.info/docs/reference/jvm#step-definitions
答案 1 :(得分:0)
If your steps like below-
Given I have following product
|prod1|
|prod2|
|prod3|
Then step definition becomes-
@Given("^I have following product$")
public void i_have_following_product(DataTable dt) throws Exception
{
List<List<String>> outerList = dt.rows();
for(List<String> innerList : outerList)
{
System.out.println(innerLlist.get(0));
}
}