Jbehave布尔命名参数

时间:2012-01-11 21:09:43

标签: java automated-tests 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版本有问题吗?这是使用布尔参数的正确方法?

3 个答案:

答案 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需要检查。