黄瓜:引用/不引用参数的最佳做法是什么

时间:2011-08-10 20:49:09

标签: cucumber bdd

在Cucumber中,您可以定义定义BDD语法的步骤;例如,您的测试可能包含:

When I navigate to step 3

然后你可以定义一个步骤:

When /^I navigate to step (\d+)$/ do |step_number|
   # navigate to step ${step_number}
end

现在,所有上述工作都完美无缺(或者至少我认为它确实如此)。但是,您也可以这样做:

When I navigate to step "3"

使用正则表达式:

When /^I navigate to step "(\d+)"$/ do |step_number|

在“RSpec书:与Rspec,Cucmber和朋友一起行为驱动的发展”中,作者David Chelimsky写道“步骤有两种常见的风格......与你的团队讨论优点和问题”。在我的团队中,有些人已经开始使用引号,但它会使手动调用步骤更加笨拙,因为您必须在步骤步骤名称中转义引号(当这些步骤名称本身包含在引号中时)。但是,使用引号可以更清楚地了解Cucumber文本中的变量。

所以,我想知道的是:对于“正确”的风格,这里有什么样的社区共识吗?或者缺乏......

  • 有没有人对这两种风格进行过效益比较?
  • 有没有人广泛使用这两种风格?

理想情况下,我想尽可能多地找到之前我们用“错误”的风格写出一百万个测试; - )

1 个答案:

答案 0 :(得分:3)

看到没有人回复你,我决定发表评论 - 也许你会发现我的意见很有帮助。

例如,我一直在一个项目中广泛使用这两种风格,在这个项目中没有“应该这样做”。我想我更多地使用“(\ d +)”风格,因为,就像你说的那样:

  

使用引号可以更清楚地了解变量的位置

至于构建由其他步骤组成的步骤,我通常会这样做:

Then /^I fill in my profile information with: "(.*)\/(.*)\/(.*)"$/ do |display_name, picture, description|
    And %{I fill in "user_display_name" with "#{display}"}
    And %{attach the file "#{picture}" to "user_picture"}
    And %{I fill in "user_short_description" with "#{description}"}
end

希望有所帮助,我愿意讨论:)