【发布时间】:2021-09-11 21:33:55
【问题描述】:
所以我最近迁移到 v6,我会尽量简化我的问题
我有以下课程
@AllArgsConstructor
public class Songs {
String title;
List<String> genres;
}
在我的场景中,我想要这样的东西:
Then The results are as follows:
|title |genre |
|happy song |romance, happy|
实现应该是这样的:
@Then("Then The results are as follows:")
public void theResultsAreAsFollows(Songs song) {
//Some code here
}
我有默认的转换器
@DefaultParameterTransformer
@DefaultDataTableEntryTransformer(replaceWithEmptyString = "[blank]")
@DefaultDataTableCellTransformer
public Object transformer(Object fromValue, Type toValueType) {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.convertValue(fromValue, objectMapper.constructType(toValueType));
}
我当前的问题是我收到以下错误:无法构造java.util.ArrayList 的实例(尽管至少存在一个创建者)
如何告诉 cucumber 将特定单元格解释为列表?但是让所有人都在同一个步骤中而不是分开?或者更好的是如何在包含不同变量类型(如 List、HashSet 等)的步骤中发送对象。
如果我进行更改并用字符串替换列表,一切都会按预期工作
【问题讨论】:
-
您使用的对象映射器是 Jackson。杰克逊进行了实际的转变。不是黄瓜。所以如果你想办法和杰克逊一起做这件事,你可能会得到更好的结果。
-
另外放一个断点,看看
fromValue是什么。它将帮助您了解您想要将什么转变为什么。
标签: cucumber bdd cucumber-java scenarios