Java Jbehave示例稳定数组/列表作为参数

Java Jbehave示例稳定数组/列表作为参数,java,bdd,jbehave,Java,Bdd,Jbehave,我们有这样的故事档案(比如说) 然后在我们的steps课程中: @Then("I get a bunch of stuff and the following data:$myData") public void verifyData(ExamplesTable myData) { List<SomeDataClass> myDataList = myData.getRowsAs(SomeDataClass.class); // do something }

我们有这样的故事档案(比如说)

然后在我们的steps课程中:

@Then("I get a bunch of stuff and the following data:$myData")
public void verifyData(ExamplesTable myData) {

    List<SomeDataClass> myDataList = myData.getRowsAs(SomeDataClass.class);

    // do something

}
但我的情况是,我有这样一个数据类:

public class NewDataClass {
    private int aField;
    private String bField;
    private Set<SomeObj> cField;

    //...

}
公共类NewDataClass{
私人外场;
私有字符串字段;
专用设置字段;
//...
}

在本例中,我有一个集合(集合)作为字段。如何使用表在上面的故事语法中表示这一点?也许有更好的方法?

示例故事文件片段:

Given I am on the add a new user page
When I enter <firstName> <lastName> <address> <city> <state> and <zip>
And I click the Ok button
Then the new user is added

Examples:
firstName|lastName|address        |city    |state|zip
Bill     |Hileman |123 Main Street|Yourtown|FL   |12345
Art      |VanDelay|321 Elm Drive  |MyTown  |PA   |54321
如果我在添加新用户页面上
当我进去
然后我点击Ok按钮
然后添加新用户
示例:
名|姓|地址|市|州|邮编
比尔|希勒曼|大街123号|佛罗里达州尤尔敦| 12345
艺术| VanDelay | Elm Drive 321 | MyTown | PA | 54321
步骤文件代码:

@When("I enter <firstName> <lastName> <address> <city> <state> and <zip>")
public void whenIEnterdata(@Named("firstName") String firstName,
                           @Named("lastName") String lastname,
                           @Named("address") String address,
                           @Named("city") String city,
                           @Named("state") String state,
                           @Named("zip") String zip) {
    // your step code here
}
@何时(“我输入并”)
public void whenierdata(@Named(“firstName”)字符串firstName,
@命名(“lastName”)字符串lastName,
@命名(“地址”)字符串地址,
@命名为(“城市”)字符串城市,
@命名(“状态”)字符串状态,
@命名(“zip”)字符串(zip){
//您的步骤代码在这里
}
JBehave支持。 提供的示例将具有以下语法

故事文件:

实施步骤:

@然后(“我得到一堆东西和以下数据:$myData”)
公共作废验证数据(列出myData){
//阶跃逻辑
// ...
}
新数据类:

import org.jbehave.core.annotations.aspameters;
@天门冬氨酸流量计
公共类NewDataClass{
私人外场;
私有字符串字段;
专用设置字段;
//接球手和接球手
// ...
}

您是希望以迭代方式处理一行数据,还是一次处理整组行数据?如果是前者,这是
示例的标准行为:
但您的语法需要更改。我认为只要我能够访问步骤中的所有数据,这并不重要。我认为您的答案更直接地解决了海报的问题,所以我投了更高的票。
Given I am on the add a new user page
When I enter <firstName> <lastName> <address> <city> <state> and <zip>
And I click the Ok button
Then the new user is added

Examples:
firstName|lastName|address        |city    |state|zip
Bill     |Hileman |123 Main Street|Yourtown|FL   |12345
Art      |VanDelay|321 Elm Drive  |MyTown  |PA   |54321
@When("I enter <firstName> <lastName> <address> <city> <state> and <zip>")
public void whenIEnterdata(@Named("firstName") String firstName,
                           @Named("lastName") String lastname,
                           @Named("address") String address,
                           @Named("city") String city,
                           @Named("state") String state,
                           @Named("zip") String zip) {
    // your step code here
}
Given Something
Scenario Some scenario
When I do something blah blah
Then I get a bunch of stuff and the following data:
{transformer=FROM_LANDSCAPE}
|aField|aVal1|aVal2|aVal3|
|bField|bVal1|bVal2|bVal3|
|cField|cVal1|cVal2|cVal3|
@Then("I get a bunch of stuff and the following data:$myData")
public void verifyData(List<NewDataClass> myData) {
    // step logic
    // ...
}
import org.jbehave.core.annotations.AsParameters;

@AsParameters
public class NewDataClass {
    private int aField;
    private String bField;
    private Set<SomeObj> cField;

    // getters & setters
    // ...
}