6

我正在为已经构建的 Rails 3 应用程序设置一堆集成测试。该应用程序是使用 Rails 3 和 Ruby 1.9.2 构建的。我已经看到有关 Capybara、Cucumber 和 RSpec 2 的建议,但我不确定它们各自的优势是什么。

我还注意到它们似乎紧密相连。我看到的帖子似乎总是在谈论将 Capybara 与 Cucumber 一起使用,或者将 Rspec 与 Cucumber 一起使用。

他们每个人的优点/缺点是什么?是否有某些组合最适合一起使用?

4

2 回答 2

13

所有这些测试工具都属于测试环境的不同部分。

如果你想设置集成测试,那么你应该使用Cucumber,因为它没有真正的替代品。Cucumber 旨在简化行为驱动开发,但即使您不使用 BDD,它也非常适合集成测试。

Capybara的使命宣言是“旨在支持所有浏览器模拟器的 webrat 替代方案”。因此,要模拟浏览器部分(http 请求、DOM 操作等),您有两种选择Webrat或 Capybara。Cucumber 与它们完美融合。事实上,它会检测您在系统中安装了哪一个,并默认使用它。

另一方面是Rspec。Rspec 不是用于集成测试的工具,而是用于单元测试(使用 BDD 方法)的工具。在http://www.pragprog.com/titles/achbd/the-rspec-book中解释得很清楚。Cucumber 位于应用程序行为的外圈,而 rspec 位于类行为的内圈。rspec 的替代方案是经典的Test::Unit类。

有关更多信息,请参阅:

于 2010-12-28T09:37:40.877 回答
0

总之,使用所有三个.

使用RSpec ...

  • ...用于单独测试模型、控制器和助手中的方法。
  • 也称为单元测试。

使用黄瓜...

  • ...用于测试应用程序的高级功能。
  • 也称为集成测试。验证所有部分是否一起工作。
  • 适合从用户的角度进行测试。

水豚与黄瓜一起使用...

  • ...用于像用户通过浏览器一样导航您的应用程序。
  • ...用于测试您的视图包含用户希望看到的内容。
于 2013-03-19T18:32:41.430 回答