如何将数据表中的多个值映射到列表中?

时间:2015-12-09 06:25:07

标签: cucumber-jvm

这是我的问题:

When I have step with data:
|Name | Description | data1 | data2|
| A   |  new A      |   abc  | xyz   |

步骤定义

@When I_have_step_with_data(List<DataSet> dataSet){
    ////
}

我正在尝试将上述数据表映射到此域对象中。

public class DataSet{
    private String name;  -> maps to Name
    private String description; -> maps to Description
    private List<Data> data;  -> creates list of Data with data1,abc and data2,xyz set.
}

public class Data {
    private string key;
    private String value;
}

关于如何实现这一目标的任何指示都会很棒。

1 个答案:

答案 0 :(得分:1)

让我们说这是你的情景:

   When I have step with data:
    |Name | Description | data1  | data2 |
    | A   |  new A      |   abc  | xyz   |

您将创建POJO类(Getters and Setter

您将创建一个类调用“DataClass”

public class DataClass{
    private String Name;
    private String Description;
    private String Data1;
    private String Data2;


    public DataClass(String Name, String Description, String Data1,String Data2) {
        this.Name = Name;
        this.Description= Description;
        this.Data1= Data1;
        this.Data2= Data2;

    }
    public String getName() {
        return Name;
    }


    public void setName(String name) {
        Name = name;
    }


    public String getDescription() {
        return Description;
    }


    public void setDescription(String description) {
        Description = description;
    }


    public String getData1() {
        return Data1;
    }


    public void setData1(String data1) {
        Data1 = data1;
    }


    public String getData2() {
        return Data2;
    }


    public void setData2(String data2) {
        Data2 = data2;
    }


}

在步骤定义中,这是循环获取值

public class descriptionSteDefs{
    private Map<String, DataClass> DataClassList;

    @When("^When I have step with data$")
    public void description_data(List<DataClass> DataClassList) throws Throwable {
        DataClassList = new HashMap<String, DataClass>();

        for (DataClass DataClassValue: DataClassList) {
            String key = DataClass.getDescription;
            DataClassList .put(key, DataClassValue);
        }
    }