2015-12-09 34 views
1

這裏是我的問題:我如何在數據表中多個值映射到一個列表?

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; 
} 

任何關於如何實現這一點的指針都會很棒。

+0

在你的步驟定義,你有'data1'(ABC)和'data2'(XYZ),但'Data'類有兩個屬性(key和value)......哪個屬性對應於 「ABC」 和 「XYZ」? – troig

+0

[密鑰=> DATA1,值=> ABC] –

回答

1

比方說,這裏就是你的情景:

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

您將創建POJO類(Getters and Setter

您將創建一個類叫 「數據類」

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); 
     } 
    }