Java 从Cucumber 1迁移到Cucumber 4后无法解析数据表
我有两节课Java 从Cucumber 1迁移到Cucumber 4后无法解析数据表,java,cucumber,Java,Cucumber,我有两节课 class MyType { private MyInnerType myInnerType; private String name; private Integer number; } class MyInnerType { private String subTypeName; private String id; } 这两个类用于cucumber测试,该测试具有步骤定义: @Given("^the system has types$") pu
class MyType {
private MyInnerType myInnerType;
private String name;
private Integer number;
}
class MyInnerType {
private String subTypeName;
private String id;
}
这两个类用于cucumber测试,该测试具有步骤定义:
@Given("^the system has types$")
public void types(List<MyType> myTypeList) {
....
}
使用Cucumber 1可以很好地使用此定义。看起来类型转换和内部类型转换是自动完成的
在将此代码迁移到cucumber 4之后,我开始出现如下错误:
Caused by: io.cucumber.datatable.CucumberDataTableException: 'java.util.List<com.mycompany.MyType>' could not transform
原因:io.cucumber.datatable.CucumberDataTableException:'java.util.List'无法转换
我做了一些谷歌搜索。显而易见的答案是为MyType和MyInnerType注册类型转换器。这听起来像是一个非常有用的功能被删除了一个新版本
我是否可以在不使用类型转换器的情况下使用自动分辨率的cucumber 4
这听起来像是一个非常有用的功能被删除了一个新版本
发件人:
Cucumber1.x和2.x使用一个名为XStream的库作为中心库
用于数据表转换的构建块。但是
XStream与Cucumber的结合并没有很好的文档记录,确实如此
不允许使用其他对象映射器(例如Jackson),因为
使域对象无法重用。因为XStream不是
与Java9兼容也是一个长期问题
--
我是否可以在不使用类型转换器的情况下使用自动分辨率的cucumber 4
您可以选择一个对象映射器框架(Jackson、XStream、Gson、ect)并将其安装为默认的数据表转换器。这将处理大多数用例
见:
尽管我不相信有任何对象映射器框架可以将映射转换为嵌套结构。你必须在那里找到一个不同的解决方案
这听起来像是一个非常有用的功能被删除了一个新版本
发件人:
Cucumber1.x和2.x使用一个名为XStream的库作为中心库
用于数据表转换的构建块。但是
XStream与Cucumber的结合并没有很好的文档记录,确实如此
不允许使用其他对象映射器(例如Jackson),因为
使域对象无法重用。因为XStream不是
与Java9兼容也是一个长期问题
--
我是否可以在不使用类型转换器的情况下使用自动分辨率的cucumber 4
您可以选择一个对象映射器框架(Jackson、XStream、Gson、ect)并将其安装为默认的数据表转换器。这将处理大多数用例
见:
尽管我不相信有任何对象映射器框架可以将映射转换为嵌套结构。你必须在那里找到一个不同的解决方案
Caused by: io.cucumber.datatable.CucumberDataTableException: 'java.util.List<com.mycompany.MyType>' could not transform