【发布时间】: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”时)。我已经可以听到我的业务用户:“这一步引用三件事是什么?”