2011-01-07 143 views
8

我是新来的测试在Rails中。我已经决定学习测试驱动开发,因此我正在研究如何在rails中实现它。测试rails应用程序的最佳方式是什么?

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

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

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

我建立在Rails的3.0

+0

有趣的问题。让我们希望我们得到一些非常好的答案! – Zabba 2011-01-07 05:03:19

+2

从http://www.opensourcerails.com/挑选一个体面大小的真实世界项目,如Spree或其他东西,并尝试了解应用程序中的测试。当然,您还需要查看实际的来源,以了解一些测试。恕我直言,这是一个很好的方式来改善一般的Rails。 – Zabba 2011-01-11 08:38:09

回答

1

我个人使用黄瓜,和RSpec的工厂女孩​​在我的应用程序的应用程序。至于资源,我正在编写一本名为Rails 3 in Action的书,它通过使用这些工具(当然还有Rails本身)来开发应用程序。

17

什么是测试rails应用程序的最佳方法?

先测试。

更严重的是,您列出了许多不同的工具,旨在完成不同的事情。

  • Shoulda是一个测试框架,用于运行测试以及一组用于编写测试的匹配器和断言。
  • 摩卡是一个嘲讽和st library的图书馆。
  • Rspec是一个测试框架,其中包括嘲笑工具和匹配器。
  • 黄瓜是一个写作功能测试的框架。
  • Factory Girl是一个构建您在测试中使用的域对象的框架。

那些Shoulda或Rspec可能会替换Test :: Unit,而其他人都为不同的测试领域提供工具。你需要哪一个取决于你的想法会使写作考试变得更容易和更有效。

对于有人用于测试::单元测试和有兴趣学习额外的工具,我会建议如下。

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

如果你开始一个新项目,然后使用RSpec与工厂女孩开始。 Rspec的会向你介绍一个非常不同的风格测试比测试::单位的,但你仍然可以写非常熟悉单元测试,它提供存根,嘲笑和匹配器可以让你潜入测试没有太多新的爆炸宝石在你的项目中。 Factory Girl将为您提供一种便捷的方式来在测试需要时构建域对象。在这两者之间,你应该能够拿起一堆新的测试技巧,同时仍然使用你通常的单元测试工作流程。