【问题标题】:Cucumber: What is the best practice for quoting/not quoting argumentsCucumber:引用/不引用参数的最佳实践是什么
【发布时间】:2012-11-13 01:48:40
【问题描述】:

在 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|

在“The RSpec Book: Behaviour-Driven Development with Rspec, Cucumber, and Friends”中,作者 David Chelimsky 写道“有两种常见的步骤样式......与您的团队讨论优缺点”。在我的团队中,一些人已经开始使用引号,但这使得手动调用步骤更加尴尬,因为您必须在步骤名称中转义引号(当这些步骤名称本身包含在引号中时)。但是,使用引号可以更清楚地了解变量在 Cucumber 文本中的位置。

所以,我想知道的是:对于这里的“正确”风格是否存在某种社区共识?或者缺少那个...

  • 有没有人做过这两种风格的好处比较?
  • 有没有人广泛使用过这两种风格?

理想情况下,我希望在我们用“错误”样式编写一百万个测试之前尽可能多地找出答案 ;-)

【问题讨论】:

  • 我还想知道这些步骤对于业务用户的可读性如何。在某些情况下,它看起来很自然(然后他应该看到“欢迎,Aslak”),但在其他情况下,它看起来像是线路噪音(当我导航到步骤“3”时)。我已经可以听到我的业务用户:“这一步引用三件事是什么?”

标签: cucumber bdd


【解决方案1】:

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

例如,我在一个没有“应该这样做”的项目中广泛使用这两种样式。我想我更多地使用了“(\ 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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多