1

私は2つの似たようなステップを持っていますが、それでも十分に異なっています(私は願っています):

@When("I send $method '$url'")
public void sendMethodURL(
    @Named("method") final String method,
    @Named("url") final String url)
{
    // stuff
}

@When("I send $method '$url' with JSON '$body'")
public void sendMethodURLBody(
    @Named("method") final String method,
    @Named("url") final String url,
    @Named("body") final String inputJSON)
{
    // stuff
}

ただし、私の話では、次のことがあります。

When I send POST '/blah/foo/bar' with JSON '["some", "json"]'

それでも、sendMethodURLwhere methodis"POST '/blah/foo/bar' with JSON"と url is を呼び出してい"[\"some\", \"json\"]"ます。明らかに、代わりに呼び出したいと思いsendMethodURLBodyます。

ここで何が間違っていますか?JBehave を取得して 2 つのステップを区別するにはどうすればよいですか?

編集: RegexStepMatcher が最初の @When に一致することを認識しています (これはsendMethodURL) が一致することがわかりました...しかし、文法をそのままにして、2 つを区別して、両方のステップに一致しないようにするにはどうすればよいですか? メソッドの順序は機能しているように見えますが、壊れにくい方法があるはずです。

4

1 に答える 1

1

私たちも同じ問題を抱えていましたが、私たちの回避策は、異なる表現を使用してステップを互いに区別することです。私が理解している限り、これはあなたにとって選択肢ではありません。この場合、ステップの優先順位付けを検討することをお勧めします。より長いステップに高い優先順位を設定できるため、最初に試行されます (JBehave のドキュメントを参照してください: http://jbehave.org/reference/stable/prioritising-steps.html ) 。 .

于 2013-08-07T14:48:23.620 に答える