所以,我有一个使用通过 Cucumber 创建的数据表的方法
Some step description
| Role | Name |
| a1 | x1 |
在这个方法中,它将数据表解析为这个
@AND("Some step description")
public void someStep(DataTable dataTable) {
...
List<Map<String, String>> roles = dataTable.asMaps(String.class, String.class)
...
}
不幸的是,我需要使用该方法,而不是作为一个步骤,这意味着我需要创建数据表并将其传递到方法中
我尝试通过 DataTable create(List> raw) 创建它,但是如果我以这种方式创建它,则 dataTable.asMaps(String.class, String.class) 会失败并显示
Can't convert DataTable to List<Map<class java.lang.String,class java.lang.String>>. DataTable was created without a converter
有没有一种方法可以在不需要客户转换器的情况下创建数据表? 或者也许是如何创建自己的转换器的示例?
尝试使用 DataTable create(List> raw)
试图找到自定义表格转换器的示例
Aa,我不确定上一小时这个解决方案的问题是什么,但现在它开始以这种方式工作:
我在某个地方看到你可以创建这个转换器:
private static final DataTableTypeRegistry registry = new DataTableTypeRegistry(Locale.ENGLISH);
private static final TableConverter tableConverter = new DataTableTypeRegistryTableConverter(registry);
并在创建表时使用它
List<List<String>> lists = List.of(List.of("key", "value"));
DataTable dataTable = DataTable.create(lists).transpose();
这种方式可以与 dataTable.asMaps(String.class, String.class) 一起使用
我不太确定为什么它最初不能以这种方式工作。我确实尝试过使用和不使用 .transpose()