2017-05-02 9 views
0

私はJBehaveで私のWebアプリケーションを自動化しています。jBehaveのコンポジットのステップが最初に事前条件を実行しないのはなぜですか?

私は手順を実行すると、それが最初ではなく最初の前提条件を実行しているよりも、複合ステップの内側にあるものを実行...前のすべての条件を備えて一つの複合ステップを作成しました。..

どのようにすることができます複合ステップを使用して順次テストを実行します。お知らせ下さい。

以下は私のステップファイルコードです。

@Given("I see given step") 
    public void given() 
    { 
     System.out.println("Inside GIVEN"); 
    } 

    @Then("I see then step") 
    public void when() 
    { 
     System.out.println("Inside WHEN"); 
    } 

    @Then("I see when step") 
    public void then() 
    { 
     System.out.println("Inside THEN"); 
    } 

    @Given("I see composite step") 
    @Composite(steps={"Given I see given step","Then I see then step","When I see when step"}) 
    public void composite() 
    { 
     System.out.println("Inside COMPOSITE"); 
    } 

私は「私は複合ステップを参照してください考える」を実行すると、合成関数の内部にあるSYSOUTは、最初に実行されます..私は最初の前提条件を実行する必要があります。

ありがとうございます!

答えて

0

ステップをネストする場合は、JBehaveがそのシナリオを処理するようには設計されていないことは確かです。あなたはコードにマイナーなタイプミスがあっても、「@then」ステップを2回、「when」に1回と言います。しかし、私はあなたがしようとしていたものを手に入れました(私は思います)。

同じ@Given/@ When/@ Then/@ Andのステップで、詳細な複数ステップのステップをまとめておく必要があります。各ステップには1行のコードしか含めるべきではないというルールはありませんが、明らかに1つの複合ステップしか含まれていないはずです。

これが役に立ちます。そうでない場合は、達成しようとしていることをより詳細に説明してください。実際の例を参考にしてください。

関連する問題