如何将字符串列表从场景大纲转换为对象

时间:2016-10-17 14:38:17

标签: java cucumber

有没有办法将场景大纲中的字符串列表转换为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) {

我知道你可以使用数据表传递一个Object列表,但这不是我想要的。场景轮廓的优点是每条线都是从干净状态重复出来的。

1 个答案:

答案 0 :(得分:1)

您可以重复使用DataTable for 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);
    }