2012-01-11 14 views
0

は、私が「ダブル」などのパラメータを見ることができるので、私は、文字列以外の他のタイプを使用しようとしましたが、私はこの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) 

(また、私はjbehaveの3、バージョン2.3を使用していないよ)

は、それは私のjbehaveバージョンでの問題ですか?ブーリアンパラメータを使用する正しい方法は?

答えて

1

私もこれを試します。 boolean/BooleanのデフォルトのParameterConverterはありません。簡単に追加できます。

ます。public void theUserShouldBeRedirectedToHomePageを(@Named( "すべきか?")文字列必要があります){:あなたは時々、このように行うことが容易になり、とにかく他の方法には、このパラメータを渡します場合

http://jbehave.org/reference/stable/parameter-converters.html

+0

ブール型は文字列の対応部分に完全にマッピングされているようですが、それはかなり不幸です。彼らはそれが次のリリースでデフォルトのコンバータになることを願っています – vandershraaf

0

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で確認する必要があります。

関連する問題