web-dev-qa-db-ja.com

複数の行にガーキンステップを書くことは可能ですか?

私はガーキン言語に不慣れです。これは非常に基本的な質問のように思えますが、答えを見つけることができませんでした。

次のように、Gherkingで複数行のステップ引数を記述できることを認識しています。

Given a blog post named "Random" with Markdown body
  """
  Some Title, Eh?
  ==============
  Here is the first paragraph of my blog post. Lorem ipsum dolor sit amet,
  consectetur adipiscing elit.
  """

私の質問は、次のように、複数の行に1つのステップを記述することです。

Given that Gherkin language allows me to write my step definitions \
   on multiple lines
Then my test cases would be easier to read :)

上記の例では、行継続記号として「\」を使用しました。ところで、私は上記の例を試しましたが、パーサーエラーが発生しました。

16
Dragan Nikolic

試行して解析エラーが発生しました。長い行を1行で記述しても、解析エラーは発生しなかったと思います。したがって、あなたは自分の質問にノーと答えました。

なぜラインを長くする必要があるのか​​を自問することをお勧めします。必要な動作、それは本当にラインが非常に長くなるほど多くの詳細が必要ですか?

文章を言い換えることで、自分を短く表現できることがよくあります。また、ガーキンのキーワードAndまたはButを使用して、長い文を壊す可能性もあります。

1
Thomas Sundberg

はい、二重引用符のトリプルセット( "" ")を使用して、複数の行にガーキンステップを書き込むことができます。ガーキンは、二重引用符のトリプルセットを複数行の文字列の境界区切り文字として認識し、それを渡します。二重引用符のトリプルセットの間は、単一の文字列としてステップ定義に渡されます。

現在のカピバラプロジェクトと同様に、以下に示すように、複数の行にガーキンステップを記述しました。

Scenario: Some test scenario
  Given Bob is on "www.abc.com"
  When Bob creates team "Test Team"
  Then Bob sees message:
      """
      As the Team Captain you will be responsible for paying for the team after 
      registration closes. You will be emailed instructions at the close of 
      registration.
      """
And Bob clicks "Next" button

マルチラインガーキンステップのステップ定義:

And(/^(\S*) sees message:$/) do |user, message|
  page.should have_content(message)
end

今回は渡されたコンテンツをそのまま使っています。コンテンツを分割して、必要に応じて使用することもできます。詳細については、下記のリンクを参照してください: http://asymmetrical-view.com/2011/06/02/cucumber-gherkin-and-multiline-arguments.html

お役に立てれば :)

17
Sarabjit Singh