在jbehave 3示例中,我可以看到参数为“double”,所以我尝试使用除字符串之外的其他类型,但是当我尝试添加像这样的布尔参数时
public void theUserShouldBeRedirectedToHomePage(@Named("should?") boolean should)
我得到一个参数类型错误:
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jbehave.scenario.steps.CandidateStep$1.perform(CandidateStep.java:225)
at org.jbehave.scenario.ScenarioRunner$FineSoFar.run(ScenarioRunner.java:112)
(另外,我使用的是2.3版,而不是jbehave的3个)
我的jbehave版本有问题吗?这是使用布尔参数的正确方法?
答案 0 :(得分:1)
我也试过这个。 boolean / Boolean没有默认的ParameterConverter。您可以轻松添加一个。
http://jbehave.org/reference/stable/parameter-converters.html
答案 1 :(得分:0)
如果你将此参数传递给其他方法,有时候更容易做到这一点:
public void theUserShouldBeRedirectedToHomePage(@Named(" should?") String 应该){
myNextMethod(的通过Boolean.valueOf(应该)强>); }
答案 2 :(得分:0)
Jbehave版本3适用于布尔值。以下面的例子,它在我的代码中运行得非常好。
@Then("I verify the response has _success as $_success and _warning as $_warning and _info as $_info and _messages as $_messages")
public void pidOrPidColorDeleteResponse(
@Named("_success") Boolean _success,
@Named("_warning") Boolean _warning,
@Named("_info") Boolean _info,
@Named("_messages") List<String> _messages) {
}
使用Jbehave Version 2需要检查。