是否可以在多行中编写小黄瓜步骤?

Is it possible to write a gherkin step on multiple lines?

我是小黄瓜语言的新手,在我看来这是一个非常基本的问题,但我找不到答案。

我知道可以在 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.
  """

我的问题是关于在多行上写单步,像这样:

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

在上面的示例中,我使用了“\”作为续行符。顺便说一句,我尝试了上面的示例并遇到了解析器错误。

您已尝试并遇到解析错误。我假设将长行写在一行上不会给您带来解析错误。因此,您已经用否回答了您自己的问题。

我想建议你问问自己为什么队伍必须很长。想要的行为,真的需要那么多细节以至于排队很长吗?

通常可以通过改写一个句子来更简短地表达自己。您也可以使用 Gherkin 关键字 And 或 But 来打断长句。

是的,我们可以使用三组双引号 (""") 在多行上编写一个 gherkin 步骤。Gherkin 将三组双引号识别为多行字符串的边界分隔符并将其传入. 无论您在三组双引号之间写入什么内容,都将作为单个字符串传递给您的步骤定义。

在我目前的水豚项目中,我在多行中编写了小黄瓜步骤,如下所示:

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

在此我使用了原样传递的内容。您还可以拆分您的内容并根据需要使用。 有关更多信息,请参阅下面提到的 link: http://asymmetrical-view.com/2011/06/02/cucumber-gherkin-and-multiline-arguments.html

希望这对您有所帮助:)