黄瓜4.7.2将表转换为行到对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黄瓜4.7.2将表转换为行到对象相关的知识,希望对你有一定的参考价值。

我正在使用JAVA Cucumber 4.7.2

我正在将黄瓜表中的数据转换为对象/模型。

黄瓜场景:]

  Scenario: test
    Given Create company
      | NAME  | ADDRESS        |
      | Apple | Some address 1 |

步骤执行:]

And("^Create company$", (DataTable table) ->

    List<Company> companies = table.asList(Company.class);
    companies.forEach(c -> c.createModel());
);

公司型号:]

public class Company

    private String name;
    private String address;
    private Map<String, String> rowData;

    public Company(Map<String, String> rowData)
    
        this.rowData = rowData;
    

    public void createModel()
    
        name = getRowValue("COMPANY");
        address = getRowValue("ADDRESS");
    

    public String getRowValue(String header)
    
        String value = rowData.get(header);

        if (Strings.isNullOrEmpty(value))
        
            throw new NullPointerException("Value for header [" + header + "] is required, but was NULL");
        
        return value;
    

DataTableConfigurer] >>

public class DataTableConfigurer implements TypeRegistryConfigurer

    @Override
    public Locale locale()
    
        return Locale.ENGLISH;
    

    @Override
    public void configureTypeRegistry(TypeRegistry registry)
    
        registry.defineDataTableType(new DataTableType(Company.class, Company::new));
    

现在,它可以正常工作,从黄瓜表中加载数据,并将其转换为模型。

我试图在上面进行修改,以允许Company

模型具有空构造函数,并通过方法[]传递rowData,例如:
public class Company

    private String name;
    private String address;
    private Map<String, String> rowData;

    // no / empty constructor

    /*
     * Passing rowData using method, not by constructor
     */
    public void setRowData(Map<String, String> rowData)
    
        this.rowData = rowData;
    

    public String getRowValue(String header)
    
        String value = rowData.get(header);

        if (Strings.isNullOrEmpty(value))
        
            throw new NullPointerException("Value for header [" + header + "] is required, but was NULL");
        
        return value;
    

但是我不知道如何编辑DataTableConfigurer

以允许这样做。

我正在使用JAVA Cucumber 4.7.2,我正在将黄瓜表中的数据转换为对象/模型。黄瓜方案:方案:给定测试创建公司| NAME |地址| | ...

答案

这样的事情?

以上是关于黄瓜4.7.2将表转换为行到对象的主要内容,如果未能解决你的问题,请参考以下文章

将列值转换为行值

将表转换为像字典一样的 json 对象 SQL?

Delphi:如何将表结构转换为对象

将表上的现有条目转换为Hibernate实体对象

黄瓜中的日期对象

VB.NET 从 DataTable 对象将表附加到数据库