【发布时间】:2019-11-26 04:04:41
【问题描述】:
我有两节课
class MyType {
private MyInnerType myInnerType;
private String name;
private Integer number;
}
class MyInnerType {
private String subTypeName;
private String id;
}
这两个类用于具有 Step 定义的黄瓜测试:
@Given("^the system has types$")
public void types(List<MyType> myTypeList) {
....
}
子句是用数据表定义的:
| subTypeName | id | name | number |
| abc | 1 | tom | 1000 |
| def | 2 | jerry | 2000 |
| ghi | 3 | jack | 3000 |
这个定义使用 Cucumber 1 可以正常工作。看起来类型转换和内部类型转换是自动完成的。
将此代码迁移到黄瓜 4 后,我开始收到如下错误:
Caused by: io.cucumber.datatable.CucumberDataTableException: 'java.util.List<com.mycompany.MyType>' could not transform
我做了一些谷歌搜索。显而易见的答案是为 MyType 和 MyInnerType 注册类型转换器。在我看来,这听起来像是为较新版本删除了一个非常有用的功能。
在不使用类型转换器的情况下,我仍然可以使用具有自动分辨率的黄瓜 4 吗?
【问题讨论】: