我正在尝试编写一个步骤def,它使用双引号匹配多个String值:
When I have a HeaderUtil
Then header is generated with fields matching patterns
"""
"\"%s\":\"%s\""
"""
or
"""
"\"%s\":%s"
"""
此stepdef将看到序列化字段与生成的字符串中的上述模式之一匹配。
我希望有一个stepdefinition,它将有两个与一个或另一个模式匹配的参数。 目前,我收到一个解析器错误:
Caused by: gherkin.lexer.LexingError: Lexing error on line 8: '""" \
"""
"\"%s\":%s"
"""
是否可以在步骤定义中传递多个多线参数?
答案 0 :(得分:0)
我想它引用了Cucumber Documentation和Custom parameter types
这个主题自定义参数类型
您可以定义自定义参数类型以表示您自己域中的类型。这样做有以下好处:
自动转换为自定义类型
记录并发展您无处不在的领域语言
强制执行某些模式
想象一下,我们希望参数匹配颜色红色,蓝色或黄色(但没有别的)。让我们假设已经定义了Color
类。这就是我们定义自定义颜色参数类型的方法:
parameterTypeRegistry.defineParameterType(new ParameterType<>(
"color", // name
"red|blue|yellow", // regexp
Color.class, // type
new SingleTransformer<>(new Function<String, Color>() {
@Override
public Color apply(String s) {
return new Color(s);
}
}), // transform
false, // useForSnippets
false // preferForRegexpMatch));