如何在 Cucumber 中迭代类型为 List<Class> 的数据表
How to Iterate Datatable with type List<Class> in Cucumber
我有以下带有给定注释的特征文件
Given user have below credentials
|user |password |
|cucumber1 |cucumber |
|cucumber2 |cucumber |
我是在数据模型下创建的
public Class DataModel{
public string user;
public String password;
}
正在尝试将数据提取到 Cucumber 步骤定义中,如下所示
Public Class stepdefinition {
@Given("^user have below credentials$")
Public void user_have_below_credintials(List<DataModel> dm){
//Iterator or foreach is required to fetch row,column data from dm
}
}
请帮助我如何迭代对象 'dm' 以获取行和列值
// The old way
for (int i = 0; i < dm.size(); i++) {
DataModel aDataModel = dm.get(i);
String username = aDataModel.user;
String password = aDataModel.password;
}
// A better way if java5+
for (DataModel aDataModel : dm) {
String username = aDataModel.user;
String password = aDataModel.password;
}
// another way if java8+
dm.forEach(aDataModel -> {
String username = aDataModel.user;
String password = aDataModel.password;
});
请注意,按照我编写的方式,变量在循环外不可用。只是迭代和访问列表中每个 DataModel 的属性的演示。
请记住,您将 DataModel 对象列表描述为数据 table。但它不是 table,它只是一个对象中包含的值的集合,您有一个列表。您可能正在显示它,或者选择将其概念化为您头脑中的数据 table,但您的代码所描述的模型并非如此,这意味着您不会像table。一旦您访问 "row","columns" 没有定义的顺序,您可以按照您想要的任何顺序访问它们以达到相同的效果。
我有以下带有给定注释的特征文件
Given user have below credentials
|user |password |
|cucumber1 |cucumber |
|cucumber2 |cucumber |
我是在数据模型下创建的
public Class DataModel{
public string user;
public String password;
}
正在尝试将数据提取到 Cucumber 步骤定义中,如下所示
Public Class stepdefinition {
@Given("^user have below credentials$")
Public void user_have_below_credintials(List<DataModel> dm){
//Iterator or foreach is required to fetch row,column data from dm
}
}
请帮助我如何迭代对象 'dm' 以获取行和列值
// The old way
for (int i = 0; i < dm.size(); i++) {
DataModel aDataModel = dm.get(i);
String username = aDataModel.user;
String password = aDataModel.password;
}
// A better way if java5+
for (DataModel aDataModel : dm) {
String username = aDataModel.user;
String password = aDataModel.password;
}
// another way if java8+
dm.forEach(aDataModel -> {
String username = aDataModel.user;
String password = aDataModel.password;
});
请注意,按照我编写的方式,变量在循环外不可用。只是迭代和访问列表中每个 DataModel 的属性的演示。
请记住,您将 DataModel 对象列表描述为数据 table。但它不是 table,它只是一个对象中包含的值的集合,您有一个列表。您可能正在显示它,或者选择将其概念化为您头脑中的数据 table,但您的代码所描述的模型并非如此,这意味着您不会像table。一旦您访问 "row","columns" 没有定义的顺序,您可以按照您想要的任何顺序访问它们以达到相同的效果。