gpt4 book ai didi

java - Cucumber - 全局变换或表达式

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:15 24 4
gpt4 key购买 nike

我希望能够将字符串从步骤映射到java中的DTO。

我发现我可以在需要的每个步骤定义之前使用 @Transform(DtoTransformer.class) 注释来完成此操作(例如 public void theDtoOfSomethingIs(@Transform(DtoTransformer.class) Dto currentDto) {...)。这里的问题是我需要重复@Transform并且不知道如何全局注册它。

我的另一个选择是使用cucumber-expressions,并使用它来注册转换器:

ParameterType<Dto> dto= new ParameterType<>(
"dto",
"(\\d+)",
Dto.class,
new SingleTransformer<>(s -> Dto.of(Integer.parseInt(s)))
);
ParameterTypeRegistry parameterTypeRegistry = new ParameterTypeRegistry(Locale.ENGLISH);
parameterTypeRegistry.defineParameterType(dto);

理论上我应该能够使用像这样的步骤定义@Given("^某物的 dto 是 {dto}$");

这里的问题是这不起作用,因为我不知道如何注册 ParameterTypeRegistry 以便由 cucumber 自动拾取。

希望有人有使用这个东西的经验吗?

最佳答案

您可以使用注册自定义 XStreamConverters 的功能来实现此目的。请查看以下 cucumber-jvm 拉取请求中的示例:https://github.com/cucumber/cucumber-jvm/pull/1010 .

关于java - Cucumber - 全局变换或表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49775126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com