【问题标题】:Using test-driven development (TDD) with Rails scaffolding使用带有 Rails 脚手架的测试驱动开发 (TDD)
【发布时间】:2014-02-14 17:22:56
【问题描述】:

我希望能更好地理解在 Rails 4 应用程序中使用 TDD 的过程。

迄今为止我发现的关于该主题的最佳帖子是15 TDD steps to create a Rails application。它建议遵循以下步骤:

  • 搭建模型
  • 为模型创建单元测试 --> 测试失败
  • 为模型创建迁移 --> 测试通过
  • 用所需的动作搭建控制器
  • 为控制器创建功能测试 --> 测试失败
  • 将代码添加到控制器操作 --> 测试通过
  • 为视图创建功能测试 --> 测试失败
  • 创建视图 --> 测试通过

这种方法带来了比rails g scaffold Foo 更多的工作。但是使用脚手架会导致测试(如果已构建)会通过,这违反了核心 TDD 原则。

我还了解到不应测试框架提供的功能(例如,validates_presence_of 的单元测试)。

这让我想问:我应该跳过对脚手架生成的代码的单元和功能测试,只测试我的自定义,还是应该遵循博客文章作者使用的逐层模式?

【问题讨论】:

  • 你想用脚手架做什么?它们只生成最基本的代码来执行 CRUD 操作,生成的测试远不值得使用。 (阅读您提供的链接:它是从 2007 年开始的,使用的 Rails 版本甚至比 Rails 2 还要早,并且没有提及使用脚手架?)
  • @yerforkferchips:是的,我意识到脚手架是相当基础的,它的测试没有用。但是对于 Rails 4,这是一个不错的起点,可以节省时间并消除遗漏。是的,这篇文章很老了,但仍然描述了一个过程。我引用这篇文章作为与脚手架和可能的工作流程的对比。

标签: ruby-on-rails ruby-on-rails-4 tdd


【解决方案1】:

如果我正确理解您的问题,这篇文章会提供一个措辞非常优美的答案:

http://robots.thoughtbot.com/unpopular-developer-5-stop-unit-testing-your-scaffold

本质上,它的信息是您应该只测试与脚手架生成的行为有偏差的地方,因为脚手架生成的测试太简单而没有用处。

【讨论】:

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