是否有可能在多行上写一个小黄瓜步骤?

时间:2016-02-25 21:55:16

标签: cucumber gherkin

我是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 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 :)

在上面的例子中,我使用'\'作为行继续符号。顺便说一句,我尝试了上面的例子并得到了解析器错误。

2 个答案:

答案 0 :(得分:11)

是的,我们可以使用三组双引号(“”“)在多行上写一个小黄瓜步.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

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

希望这会有所帮助:)

答案 1 :(得分:1)

您尝试了解析错误。我假设在一行上写长行并没有给你一个解析错误。因此,您已回答了自己的问题。

我想建议您问问自己为什么线条必须很长。想要的行为,它真的需要这么多细节,这条线变得很长吗?

通常可以通过改写句子来表达自己。您也可以使用Gherkin关键字And或But来打破长句。