Cucumber:引用/不引用论点的最佳实践是什么
在Cucumber中,定义定义BDD语法的步骤;例如,您的测试可能有:Cucumber:引用/不引用论点的最佳实践是什么,cucumber,bdd,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
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、Cuccmber和Friends的行为驱动开发”中,作者David Chelimsky写道“步骤有两种常见的风格……与您的团队讨论利弊”。在我的团队中,有一些人已经开始使用引号,但这使得手动调用步骤变得更加尴尬,因为您必须转义步骤名称中的引号(当这些步骤名称本身用引号括起来时)。但是,使用引号可以更清楚地说明变量在文本中的位置
所以,我想知道的是:对于什么是“正确的”风格,是否有任何形式的社区共识?或者缺少
- 有没有人对这两种风格进行过利益比较
- 有人广泛使用过这两种风格吗
理想情况下,在我们用“错误”的风格编写一百万个测试之前,我希望尽可能多地找出答案;-) 鉴于没有人回复你,我决定发表评论——也许你会发现我的意见很有帮助 例如,我在一个项目中广泛使用了这两种样式,但在这个项目中没有“应该这样做”。我想我不再使用“(\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
希望能有所帮助,我愿意讨论:)我还想知道这些步骤对业务用户的可读性如何。在某些情况下,它看起来很自然(然后他应该看到“Welcome,Aslak”),但在另一些情况下,它看起来像线路噪音(当我导航到步骤“3”)。我已经听到我的业务用户:“这一步是什么?引用三个东西?”