【问题标题】:What is the best way to test a rails app?测试 Rails 应用程序的最佳方法是什么?
【发布时间】:2011-06-05 02:09:30
【问题描述】:

我是 Rails 测试的新手。我决定学习测试驱动开发,因此我正在研究如何在 Rails 中进行。

我从 Test::Unit 开始,很快就知道有更好的工具和测试框架可用。我听说的事情是

  1. 应该
  2. 摩卡
  3. Rspec
  4. 黄瓜
  5. 工厂女孩

现在我很困惑如何继续。 我需要学习的这些工具的最佳组合是什么?另外我在哪里可以找到学习这些的资源?

我正在 Rails 3.0 中构建应用程序

【问题讨论】:

  • 好问题。希望我们能得到一些非常好的答案!
  • opensourcerails.com 中挑选一个体面的真实世界项目,如 Spree 或其他项目,并尝试了解应用程序中的测试。当然,您还需要查看实际来源,以了解一些测试。恕我直言,这也是一个让 Rails 变得更好的好方法。

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


【解决方案1】:

测试 Rails 应用的最佳方法是什么?

先测试。

更重要的是,您列出了许多不同的工具,它们旨在做不同的事情。

  • Shoulda 是一个用于运行测试的测试框架以及一组用于编写测试的匹配器和断言。
  • Mocha 是一个模拟和存根库。
  • Rspec 是一个包含模拟工具和匹配器的测试框架。
  • Cucumber 是一个用于编写功能测试的框架。
  • Factory Girl 是一个框架,用于构建您在测试中使用的域对象。

其中的 Shoulda 或 Rspec 可能会取代 Test::Unit,而其他的都为不同的测试领域提供工具。您需要哪一种取决于您认为怎样才能使编写测试更容易、更有效。

对于习惯于 Test::Unit 单元测试并有兴趣学习其他工具的人,我建议如下。

如果您有一个使用 Test::Unit 的现有项目,请考虑添加 Mocha 的模拟和存根,看看这是否可以让您更轻松地编写重点单元测试。如果您已经有了固定装置,请考虑在添加新模型对象时使用 Factory Girl 来生成工厂,并再次查看您是否发现这使您的测试更易于管理和维护。如果您有一套可靠的单元测试,已经考虑使用 Cucumber 编写一些更高级别的功能测试,以开始在测试中捕获用户故事并端到端测试您的应用程序。

如果您要开始一个新项目,请从 Rspec 和 Factory Girl 开始。 Rspec 将向您介绍一种与 Test::Unit 非常不同的测试风格,但您仍然会编写相当熟悉的单元测试,它提供了存根、模拟和匹配器,让您可以深入测试而不会产生太多新的爆炸项目中的宝石。 Factory Girl 将为您提供一种方便的方式来构建域对象,因为您的测试需要它们。在这两者之间,您应该能够掌握许多新的测试技巧,同时仍然使用通常的单元测试工作流程。

【讨论】:

  • 任何可用于学习这些的教程。我已根据您的建议从 rspec 开始,但开始时遇到了很多麻烦。我有一个需要添加 Rspec 的现有应用程序。我该怎么做?
【解决方案2】:

您查看过 Michael Hartl 的 RoR 3 教程吗?

Ruby on Rails 3 Tutorial by Michael Hartl

他将一个很好的 Rails 3 教程与 RSpec 和 Factory Girl 的一些基本用法集成在一起。

【讨论】:

    【解决方案3】:

    我个人在我的应用程序中使用 Cucumber、RSpec 和 Factory Girl。至于资源,我正在写一本名为 Rails 3 in Action 的书,它通过使用这些工具(当然还有 Rails 本身)来开发应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      相关资源
      最近更新 更多