我有一个任务要从 Cucumber 2 升级到 7,我设法找到了所有内容,但没有找到如何迁移
Transformer
和 @Transform
代码,如下所示:
import cucumber.api.Transformer;
import cucumber.runtime.java.guice.ScenarioScoped;
import java.util.Optional;
public class OptionalStringTransformer extends Transformer<Optional<String>> {
@Override
public Optional<String> transform(String s) {
return Optional.ofNullable(s);
}
}
@ScenarioScoped
public class StepDefinitions {
@And("^Some ?(not)? step?$")
public void someStep(@Transform(OptionalStringTransformer.class) Optional<String> example){
// Step code
}
}
有人知道怎么做吗?
3.0 发布帖子 说:
(...) XStream 中的 @Transformer (...) 将不再起作用。这些必须替换为 DataTableType 或 ParameterType
换句话说,您必须用其他功能替换该功能。只是 Cucumber 不再支持它。
现在可以使用
Optional<String>
而无需任何自定义代码。
@And("^Some ?(not)? step?$")
public void someStep(Optional<String> example){
System.out.println(example);
}
将打印
Optional.empty
或 Optional[not]
。