黄瓜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将表转换为行到对象的主要内容,如果未能解决你的问题,请参考以下文章