【问题标题】:Test Driven Development (TDD) with Rails使用 Rails 的测试驱动开发 (TDD)
【发布时间】:2011-02-11 17:24:57
【问题描述】:

我正在寻找特定于 Rails 的 TDD 资源。

我看过 Rails 指南:The Basics of Creating a Rails Plugin,这确实激发了我对该主题的兴趣。

我有《使用 Rails 进行敏捷开发》一书,我看到那里有一些与测试相关的信息。但是,似乎作者会带您完成构建应用程序的步骤,然后添加测试。这并不是真正的测试驱动开发。

理想情况下,我想要一本关于这方面的书,但是如果不存在这样的书,那么收集其他教程或文章会很棒。

我想学的东西:

  • 主要目标:最佳实践
  • 单元测试
  • 如何使用夹具
    • 可能使用现有的开发数据代替夹具
      • 这里的社区标准是什么?
  • 为插件编写测试
  • 使用会话数据进行测试
    • 用户已登录
    • 用户可以访问 URL /foo/bar
  • 测试数据更改
    • 作者更新帖
    • 产品状态更改为延期交货
    • 用户购买产品(行为?)
      • 用户已登录
      • 用户拥有有效地址和有效信用卡
      • 订单记录已完成
      • 信用卡交易记录已更新
      • 向用户发送电子邮件
  • 测试发送邮件是否成功
  • 测试 AJAX
    • 可能测试通用 jQuery 功能(界面元素等)
  • RSpec
    • RSpec 在 Rails 应用程序中的位置
  • 测试的未来
    • 测试在哪里?有哪些事情即将结束?
    • Rails 3 将使用哪些模式?

感谢您的帮助!

【问题讨论】:

标签: ruby-on-rails unit-testing tdd


【解决方案1】:

The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends。专注于 BDD 而不是 TDD,但这就是 RSpec 和 Cucumber 的重点。不完全特定于 Rails,但有几个章节专门介绍它。写得很好并且是最新的(尽管仍处于测试阶段)。

【讨论】:

  • BDD 与 TDD 相比如何?他们的论点是否表明一个比另一个更好?还是它们只是涵盖不同的东西?
  • 我也打算提出这个建议 - 真的是 Rails 世界中最先进的技术。 BDD 和 TDD 密切相关,只是从不同的角度处理相同的问题。 rSpec 实际上是一个建立在 DSL 上的测试框架,它产生人类可读的“意图”。
  • 这是一个很好的描述。我还要说,TDD 从内到外的角度进行测试,即。编码员的,而 BDD 从外向内的角度进行测试 - 利益相关者或客户的角度。更好的 BDD 工具的输出非常接近可以交给客户的需求规范。
【解决方案2】:

【讨论】:

    【解决方案3】:

    这是一个较老的问题,但我要补充一点,Michael Hartl 的 Learn Rails by Example 引导用户了解 TDD 并涵盖了原始问题中提到的大部分要点。

    我还要补充一点,Everyday Rails Testing with RSpec 是一笔不错的购买,特别是因为作者在客户已经购买了这本书之后向他们提供免费更新,并且他计划根据 Rails 4 的发布再次更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2014-01-30
      • 1970-01-01
      • 2011-06-07
      相关资源
      最近更新 更多