JBehave步骤中的自定义类型列表

时间:2017-03-27 11:57:56

标签: java jbehave

给定参数转换器

@AsParameterConverter
public MyType toMyType(String myTypeString) {
}

何时我尝试运行具有步骤的测试

@Given("a custom step with a $vals")
public void list(List<MyType> vals) {
}

然后它应该运行,但它失败并显示以下消息:

No parameter converter for interface java.util.List
org.jbehave.core.steps.ParameterConverters$ParameterConvertionFailed: No parameter converter for interface java.util.List

1 个答案:

答案 0 :(得分:0)

据我所知,JBehave不接受数组作为参数。相反,您应该单独传递变量。如果有太多,那么也许应该考虑不同的方法。我还建议使用&lt;&gt;参数的分隔符而不是$,因为我使用$ finding&#34;重复的步骤&#34;我遇到了遗留代码的问题。这不是重复,但在更改为&lt;&gt;时就消失了。它不是您报告错误的原因,但我认为您还必须在定义的参数类型和变量之前使用@Named(&#34; vals&#34;)声明。

我认为JBehave无法支持数组作为参数的原因是因为它无法知道要传递什么。您可能认为它可能是场景中唯一的参数,但是如果有其他变量,即val可能是员工信息(名字,姓氏等),然后在同一场景中需要另一个步骤,那该怎么办?比方说一个URL。 JBehave如何确定示例列表中的哪些变量作为&#34; vals&#34;以及在哪里找到&#34; URL&#34;或任何其他变量?