我正在为已经构建的 Rails 3 应用程序设置一堆集成测试。该应用程序是使用 Rails 3 和 Ruby 1.9.2 构建的。我已经看到有关 Capybara、Cucumber 和 RSpec 2 的建议,但我不确定它们各自的优势是什么。
我还注意到它们似乎紧密相连。我看到的帖子似乎总是在谈论将 Capybara 与 Cucumber 一起使用,或者将 Rspec 与 Cucumber 一起使用。
他们每个人的优点/缺点是什么?是否有某些组合最适合一起使用?
我正在为已经构建的 Rails 3 应用程序设置一堆集成测试。该应用程序是使用 Rails 3 和 Ruby 1.9.2 构建的。我已经看到有关 Capybara、Cucumber 和 RSpec 2 的建议,但我不确定它们各自的优势是什么。
我还注意到它们似乎紧密相连。我看到的帖子似乎总是在谈论将 Capybara 与 Cucumber 一起使用,或者将 Rspec 与 Cucumber 一起使用。
他们每个人的优点/缺点是什么?是否有某些组合最适合一起使用?
所有这些测试工具都属于测试环境的不同部分。
如果你想设置集成测试,那么你应该使用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类。
有关更多信息,请参阅:
总之,使用所有三个.
使用RSpec ...
使用黄瓜...
将水豚与黄瓜一起使用...