0

機能定義内にそのような句がある場合:

Then I can see the "/relative-url-path" page

Cucumber はこのメソッドを課します:

@When("^I can see the \"([^\"]*)\" page$")
public void I_open_the_page(String arg1) {
    // Express the Regexp above with the code you wish you had
    throw new PendingException();
}

URL の相対部分を引用符で強調表示したい場合、gherkin パーサーに THEN クローズを「プレーンな文字列」として解釈させるにはどうすればよいですか。言い換えれば、どうすればそれを回避できますか?

番号がある場合の同じ質問ですか?

4

2 に答える 2

1

まず、ステップ定義にRubyを使用している場合は、「When」の前に@記号を付ける必要はないと思います。これにより問題が発生する可能性があります(わかりません)。Rubyを使用していない場合は、ステップ定義に使用している言語を知っておくと役立ちます。

ファイルパスを引用符で囲んで何をしたかを説明できます。

When I upload invoice "C:\Ruby193\automation\myfile.txt"

次に、このコードを使用しました。

When /^I upload invoice "(.*)"$/ do |filename|
  @upload_invoice_page = UploadInvoicePage.new(@test_env)
  @upload_invoice_page.upload_file(filename, 'BIRD, INC.')
end

その例に続いて、Rubyで私はあなたのステップのためにこのコードを試してみます:

When /^ can see the "(.*)" page$/

コードはおそらくJavaのように見えるので、次のようになります。

@When("^I can see the \"(.*)\" page$")

より複雑な正規表現をそこに入れることができますが、それはガーキンのステップなので、実際には必要ありません。現在、二重引用符ではないものを取得しようとしているようです。正規表現はすでにオープンとクローズの見積もりを探しているので、それを行う必要はありません。

引用符を完全に削除することもできます。

Then I can see the /relative-url-path page

@When("^I can see the (.*) page$")

人間が読みやすいと感じる場合にのみ、引用符を保持してください。正規表現の詳細については

数字だけを一致させるには、次のようにします。

Then I can see the 123456

@Then("^I can see the (\d*)$")

RichardLawrenceのCucumberRegexチートシートが非常に役立つことがわかりました。そこに必要なパターンのほとんどが見つかります。より複雑なパターンが必要な場合は、ステップ定義コードでその評価を行う方がよいかどうかを検討できます。

于 2012-04-16T16:22:56.597 に答える
0

議論に基づくと、非キャプチャ グループが必要なようです。これにより、任意の URL を指定できますが、実際のステップでは完全に無視されます (つまり、パラメーターとして渡されません)。

グループの先頭に置く?:と、非キャプチャ グループになります。

@When("^I can see the \"(?:[^\"]*)\" page$")
public void I_open_the_page() {
    // Express the Regexp above with the code you wish you had
    throw new PendingException();
}
于 2012-04-19T13:55:21.863 に答える