Java Jbehave示例稳定数组/列表作为参数
我们有这样的故事档案(比如说) 然后在我们的steps课程中: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 }
@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
// ...
}