6

私が持っているとしましょう:

@Given("first name is $firstName")
@Given("first name is $firstName and last name is $lastName")

次のステップはあいまいとしてマークされます。

Given first name is John and last name is Smith

引用符を使用して最初のパラメーターを囲むことなく、2 番目のパラメーターのみに一致するようにこのステップを修正するにはどうすればよいですか? 引用符を使用して両方のパラメーターを別々に囲むと、同じあいまいさの問題があります。

各パラメータの長さに制限はありますか? 渡せない特定の文字はありますか?

4

3 に答える 3

8

ここに記載されているように、ステップの優先順位を使用してこれを解決できます: http://jbehave.org/reference/stable/prioritising-steps.html

この問題は、次の 2 つのパラメーターを使用してバリアントの優先度を高く設定することで解決されます。

@Given("first name is $firstName")
@Given(value = "first name is $firstName and last name is $lastName", priority = 1)

私はあなたの例を試しましたが、この組み合わせで、2 つのステップが分離されました。

(編集:私の最初の解決策にはパラメータの引用符がありましたが、なくても機能します)

于 2012-12-06T10:18:55.557 に答える
1

このシナリオは次のように記述できると思います。

Given first name is John
And last name is Smith

そしてステップ:

@Given("first name is $firstName")
@And("last name is $lastName")

「@Given」の手順で、最初に人物オブジェクトを作成し、名前と名前を設定できます。
メールなどの別のプロパティを追加する必要がある場合は、別のステップを作成する必要があります。

@And("the email is $email")
public addEmail(String email) {
    person.setEmail(email);
}

したがって、この問題は発生せず、コードはより再利用可能になります。

于 2012-12-05T11:32:17.553 に答える