Cucumber 可以在多行上写一个小黄瓜步骤吗?

Cucumber 可以在多行上写一个小黄瓜步骤吗?,cucumber,gherkin,Cucumber,Gherkin,我是小黄瓜语言的新手,在我看来这是一个非常基本的问题,但我找不到答案 我知道可以用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 adip

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

我知道可以用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 :)
我的问题是关于在多行上写单步,类似这样:

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将三重双引号集识别为多行字符串的边界分隔符并将其传入。在三重双引号集之间写入的任何内容都将作为单个字符串传递给步骤定义

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

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
在本文中,我使用了按原样传递的内容。您也可以拆分内容并根据需要使用。 有关更多信息,请参阅以下链接:


希望这能有所帮助:)

谢谢托马斯,我接受这一正确答案。实际上,跨多行写一步是不可能的,但也不可能用来达到相同的目的。我认为这是一个比下面的人给你的评价更好的问题。我是一个简洁的作家,而且我总是没有足够的篇幅.同意。多行将是构建我的一些behave/gherkin步骤的一种很好的可读方式。在一个步骤中指定多个设置时,使用表格通常是一个很好的选择。然后,可以在不进行步骤分解的情况下支持设置组合的变体(许多新步骤)。“And”或“But”“可以工作,但当设置需要在一个原子单元中同时进行时,就不行了。这是一个很好的信息,但不是问题的答案。”。问题本身已经提供了相同的信息,因为我知道参数可以写在多行上。问题其实是在多行上编写一个没有参数的长黄瓜步骤。托马斯的回答至少提供了一个解决方法,也是一个很好的实践。这就是为什么我把它标记为正确答案(至少现在是这样:)然而这正是我想要的:)非常感谢@sarabjit singh