【问题标题】:What does Steak add beyond just using Capybara and RSpec in Rails testing?除了在 Rails 测试中使用 Capybara 和 RSpec 之外,Steak 还添加了什么?
【发布时间】:2011-01-23 09:16:35
【问题描述】:

我正在尝试了解对 Steak 的需求。我知道它就像 Cucumber,除了你可以使用纯 ruby​​ 而不是像 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 这样的复杂功能呢?英语接受规范描述是唯一的价值主张,还是我遗漏了什么?

谢谢

【问题讨论】:

    标签: ruby-on-rails rspec cucumber rspec2 capybara


    【解决方案1】:

    从技术上讲,Steak 只添加了三样东西:

    • 一些语法糖以别名(场景、背景、功能)的形式提醒开发人员他们正在编写验收规范,而不是常规规范。

      李>
    • 几个方便的生成器用于 Rails,可帮助开发人员快速设置新项目或新规范

    • Rake 支持单独运行您的验收规范等。

    您可以将 Steak 视为 RSpec 的最小扩展。但比技术方面更重要的是与 Steak 相关的非技术方面:

    • 它为使用 RSpec 进行验收 BDD 提供了一个名称。说你使用 Steak 比解释你练习什么类型的测试要短。

    • 它提供了一个社区(邮件列表、wiki、twitter 帐户……),供开发人员进行这种特殊形式的测试、分享经验、问题和最佳实践。

      李>

    我认为 Steak 不会为任何熟悉 RSpec 的人增加任何复杂性,但如果你这么认为并且你并不真正关心以前的所有事情,那么你根本不需要使用 RSpec,你可能会只使用 Test::Unit + Capybara 会更快乐。

    【讨论】:

      【解决方案2】:

      您的预感可能是正确的,Steak 进一步混淆了 rSpec 测试命名空间。

      例如,'acceptance' 目录意味着您正在使用 steak 进行验收测试,这种情况很少发生,通常也是您使用 Steak 而不是黄瓜的原因。

      更清晰的定义见:http://en.wikipedia.org/wiki/Acceptance_testing

      由于您排除了 cucumber 并使用 rSpec,它通常被称为利益相关者/非技术分析师阅读的 DSL,更适合的可能是集成测试:

      http://en.wikipedia.org/wiki/Integration_testing

      我们正在逐步淘汰 steak,取而代之的是 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        • 2011-06-28
        • 1970-01-01
        • 1970-01-01
        • 2012-12-07
        • 1970-01-01
        相关资源
        最近更新 更多