如何使用类型List迭代数据表 在黄瓜

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用类型List迭代数据表 在黄瓜相关的知识,希望对你有一定的参考价值。

我有以下功能文件与给定注释

Given user have below credentials
|user       |password |
|cucumber1  |cucumber |
|cucumber2  |cucumber |

我在数据模型下创建

public Class DataModel{
   public string user;
   public String password;
}

尝试将数据提取到黄瓜步骤定义中,如下所示

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对象列表描述为数据表。但它不是一个表,它只是一个包含在一个对象中的值的集合,你有一个列表。您可能正在显示它,或选择将其概念化为您头脑中的数据表,但您的代码所描述的模型不是那个,这意味着您不会像表那样迭代它。一旦访问“行”,“列”没有已定义的顺序,您可以按任何顺序访问它们以获得相同的效果。

以上是关于如何使用类型List迭代数据表 在黄瓜的主要内容,如果未能解决你的问题,请参考以下文章

我如何刻意说黄瓜跳过当前场景中的其余步骤(java)

python--迭代

JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用

如何在Django视图中使用for循环返回每次迭代[关闭]

如何在UL中迭代使用appendChild和片段LI?

如何将黄瓜报告实用程序与空手道框架相结合?