如何将字符串列表从场景大纲转换为对象
How to convert list of string from scenario outline to object
有没有办法将场景大纲中的字符串列表转换为对象,例如:
Scenario Outline: eligibility rules
When I specify habitation details
| <you_are> | <nature> | <pro> |
Examples:
| you_are| nature | pro |
| PNO | Living | No |
| PO | Pro | yes |
进入:
class Entry {
String you_are;
String nature;
String pro ;
}
@When("I specify habitation details")
public void specifyHabitationDetails(Entry entry) {
我知道您可以使用数据表传递对象列表,但这不是我想要的。 scenario outline的优点是每一行都是从干净的状态开始重复的。
您可以为 ScenarioOutline 示例重用 DataTable 的登录名。示例中的每一行 table 都将如您所说的那样重新开始。
修改您的功能和步骤定义以使用 DataTable。 header 应该匹配条目 class 中的变量名称,以便 Cucumber 自动创建 object,还在条目 class.[=12= 中提供 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);
}
有没有办法将场景大纲中的字符串列表转换为对象,例如:
Scenario Outline: eligibility rules
When I specify habitation details
| <you_are> | <nature> | <pro> |
Examples:
| you_are| nature | pro |
| PNO | Living | No |
| PO | Pro | yes |
进入:
class Entry {
String you_are;
String nature;
String pro ;
}
@When("I specify habitation details")
public void specifyHabitationDetails(Entry entry) {
我知道您可以使用数据表传递对象列表,但这不是我想要的。 scenario outline的优点是每一行都是从干净的状态开始重复的。
您可以为 ScenarioOutline 示例重用 DataTable 的登录名。示例中的每一行 table 都将如您所说的那样重新开始。
修改您的功能和步骤定义以使用 DataTable。 header 应该匹配条目 class 中的变量名称,以便 Cucumber 自动创建 object,还在条目 class.[=12= 中提供 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);
}