
[英]Rails3: How do I visit a subdomain in a steak(rspec) spec using Capybara
[英]What does Steak add beyond just using Capybara and RSpec in Rails testing?
我正在努力了解牛排的必要性。 我认为它像Cucumber一样,除了你可以使用纯红宝石而不是像Cucumber那样将你的英语语言规范映射到ruby,但它说它主要是在RSpec DSL周围添加一个包装器,并让你使用它
取自: http : //jeffkreeftmeijer.com/2010/steak-because-cucumber-is-for-vegetarians/
module Spec::Example::ExampleGroupMethods
alias scenario example
alias background before
end
module Spec::DSL::Main
alias feature describe
end
这就是全部? 我从例子中可以看出,你仍然在使用Capybara和RSpec匹配器进行繁重的工作。那么为什么不使用Capybara和RSpec而不是在它之上添加像Steak这样的复杂功能呢? 英语语言接受规范描述是唯一的价值主张,还是我错过了其他的东西?
谢谢
从技术上讲,牛排只增加了三件事:
一些别名形式的语法糖 (场景,背景,功能)提醒开发人员他们正在编写验收规范,而不是常规规范。
一些方便的Rails 生成器 ,可以帮助开发人员快速设置新项目或新规范
除了其他方面, Rake支持单独运行您的验收规范。
您可以将Steak视为RSpec的最小延伸。 但比技术更重要的是与Steak相关的非技术性事物:
它提供了使用RSpec进行接受BDD的名称 。 说你使用牛排比解释你练习的测试类型要短。
它提供了一个开发人员社区 (邮件列表,wiki,Twitter帐户......),他们正在进行这种特定的测试形式,分享经验,问题和最佳实践。
我不认为牛排给任何熟悉RSpec的人增加了任何复杂功能,但是如果你这么认为并且你并不真正关心以前的所有事情,那么你根本不需要使用RSpec,你可能会更乐意使用只测试:: Unit + Capybara。
你的预感可能是正确的,而且Steak进一步混淆了rSpec测试命名空间。
例如,'接受'目录暗示您正在使用牛排进行验收测试,这种情况很少发生,并且通常是您使用牛排而不是黄瓜的原因。
有关更清晰的定义,请参阅: http : //en.wikipedia.org/wiki/Acceptance_testing
由于您排除黄瓜并使用rSpec(利益相关者/非技术分析师通常不称为DSL),因此更接近于整合测试:
http://en.wikipedia.org/wiki/Integration_testing
我们正在逐步淘汰牛排,转而采用rSpecs原生'请求'和'功能'规格,这些都是开箱即用的。 可能值得检查一下。
https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec https://www.relishapp.com/rspec/rspec-rails/docs/feature-specs/feature-spec
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.