Jbehave 布尔命名参数
在 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版本有问题吗?哪种是使用布尔参数的正确方法?
In the jbehave 3 examples I can see parameters as "double", so I tried to use other types besides string, but when I try to add a boolean parameter like this
public void theUserShouldBeRedirectedToHomePage(@Named("should?") boolean should)
I get an argument type error:
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)
(also, I'm using version 2.3, not 3 of jbehave)
Is it a problem with my jbehave version? which is the right way to use a boolean parameter?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我也试试这个。布尔值/布尔值没有默认的 ParameterConverter。您可以轻松添加一个。
http://jbehave.org/reference/stable/parameter-converters.html
I try this too. There is no default ParameterConverter for boolean/Boolean. You can easily add one.
http://jbehave.org/reference/stable/parameter-converters.html
如果您无论如何都要将此参数传递给其他方法,有时这样做会更容易:
public void theUserShouldBeRedirectedToHomePage(@Named("should?") String should){
myNextMethod(Boolean.valueOf (应该));
}
If you will pass this parameter to other method anyways, sometimes is easier to do like this:
public void theUserShouldBeRedirectedToHomePage(@Named("should?") String should){
myNextMethod(Boolean.valueOf(should));
}
Jbehave 版本 3 与布尔运算配合得很好。以下面的例子为例,它在我的代码中运行得很好。
使用 Jbehave Version 2 需要检查。
Jbehave version 3 works well with Boolean. Take the following example it works perfectly fine in my code.
With Jbehave Version 2 need to check.