Java 如何将场景大纲中的字符串列表转换为对象
是否有方法将场景大纲中的字符串列表转换为对象,例如:Java 如何将场景大纲中的字符串列表转换为对象,java,cucumber,Java,Cucumber,是否有方法将场景大纲中的字符串列表转换为对象,例如: Scenario Outline: eligibility rules When I specify habitation details | <you_are> | <nature> | <pro> | Examples: | you_are| nature | pro | | PNO | Living | No | | PO | Pro | y
Scenario Outline: eligibility rules
When I specify habitation details
| <you_are> | <nature> | <pro> |
Examples:
| you_are| nature | pro |
| PNO | Living | No |
| PO | Pro | yes |
我知道可以使用datatable传递对象列表,但这不是我想要的。scenario outline的优点是每一行都是从干净的状态重新开始的。对于scenario outline示例,您可以重用DataTable的登录。示例表中的每一行都将像您所说的那样一尘不染 修改功能和步骤定义以使用数据表。标头应与Entry类中的变量名匹配,以便Cucumber自动创建对象,并在Entry类中提供3 arg构造函数
When I specify habitation details
| you_are | nature | pro |
| <you_are> | <nature> | <pro> |
当我指定居住详细信息时
|你是天生的职业选手|
| | | |
示例部分保持不变
@When("I specify habitation details")
public void specifyHabitationDetails(List<Entry> entry) {
Entry e = entry.get(0);
}
@何时(“我指定居住细节”)
public void specifyHabitationDetails(列表条目){
条目e=条目get(0);
}
您可以在ScenarioOutline示例中重复使用DataTable的登录。示例表中的每一行都将像您所说的那样一尘不染
修改功能和步骤定义以使用数据表。标头应与Entry类中的变量名匹配,以便Cucumber自动创建对象,并在Entry类中提供3 arg构造函数
When I specify habitation details
| you_are | nature | pro |
| <you_are> | <nature> | <pro> |
当我指定居住详细信息时
|你是天生的职业选手|
| | | |
示例部分保持不变
@When("I specify habitation details")
public void specifyHabitationDetails(List<Entry> entry) {
Entry e = entry.get(0);
}
@何时(“我指定居住细节”)
public void specifyHabitationDetails(列表条目){
条目e=条目get(0);
}
为什么需要在此处转换?Cucumber使用正则表达式识别这些测试用例,从中可以在测试中构建一个类;我认为你尝试的方式不正确。为什么你需要在这里转换?Cucumber使用正则表达式识别这些测试用例,从中可以在测试中构建一个类;我不认为你这样做是对的。谢谢你,这很有效!唯一的问题是我得到一个包含一个元素的列表。然后我必须输入。获取(0)以获取我的对象。有没有办法直接获取实际对象?列表中必须始终只有一个对象。默认情况下,DataTable查找多行数据。如果您直接想要Entry对象,请尝试使用传递到功能文件中步骤的分隔字符串进行一些修改。-当我指定居住详细信息时@@。修改步骤定义--public void specifyHabitationDetails(条目)。在Entry类中创建一个以分隔字符串作为参数的单参数构造函数。放置逻辑以初始化变量。Cucumber将自动调用此构造函数并为您提供Entry对象。谢谢,这很有效!唯一的问题是我得到一个包含一个元素的列表。然后我必须输入。获取(0)以获取我的对象。有没有办法直接获取实际对象?列表中必须始终只有一个对象。默认情况下,DataTable查找多行数据。如果您直接想要Entry对象,请尝试使用传递到功能文件中步骤的分隔字符串进行一些修改。-当我指定居住详细信息时@@。修改步骤定义--public void specifyHabitationDetails(条目)。在Entry类中创建一个以分隔字符串作为参数的单参数构造函数。放置逻辑以初始化变量。Cucumber将自动调用此构造函数并为您提供Entry对象。