5

如何在黄瓜 java 绑定中定义步骤定义时使用可变参数的力量。我有以下步骤

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(",") 打破字符串并将其转储到数组中。但我只想知道黄瓜本身是否支持可变参数模式。

蒂亚!!!

4

2 回答 2

12

我不知道黄瓜是否支持可变参数,但也许你可以通过直接列表匹配来实现你的目标?

您可以在 Cucumber 的功能文件中定义示例列表

您可以在 Step 的末尾定义它们:

@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

于 2015-04-07T12:38:50.763 回答
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));
    }
}
于 2018-12-14T07:04:54.920 回答