2012-01-11 110 views
0

在jbehave 3個的例子,我可以看到參數爲「雙」,所以我試圖用其他類型除了字符串,但是當我嘗試添加一個布爾參數這樣Jbehave布爾命名參數

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

如果您將通過此參數反正其他方法,有時更容易這樣做:

公共無效theUserShouldBeRedirectedToHomePage(@Named( 「應該?」)字符串應該){

myNextMethod(Boolean.valueOf(should)); }

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版本2需要檢查。