将 Transformer 从黄瓜 2 迁移到黄瓜 7

问题描述 投票:0回答:2

我有一个任务要从 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
    }
}

有人知道怎么做吗?

java migration cucumber
2个回答
1
投票

3.0 发布帖子 说:

(...) XStream 中的 @Transformer (...) 将不再起作用。这些必须替换为 DataTableType 或 ParameterType

换句话说,您必须用其他功能替换该功能。只是 Cucumber 不再支持它。


0
投票

现在可以使用

Optional<String>
而无需任何自定义代码。

  @And("^Some ?(not)? step?$")
  public void someStep(Optional<String> example){
    System.out.println(example);
  }

将打印

Optional.empty
Optional[not]

© www.soinside.com 2019 - 2024. All rights reserved.