Cucumber Rails集成测试

Cucumber Rails集成测试,cucumber,integration-testing,ruby-on-rails-3,rspec2,capybara,Cucumber,Integration Testing,Ruby On Rails 3,Rspec2,Capybara,我希望为已经构建的Rails 3应用程序设置一系列集成测试。 该应用程序是用Rails 3和Ruby 1.9.2构建的。我已经看到了对水豚、黄瓜和RSPEC2的推荐,但我不确定它们各自的优点是什么 我还注意到它们似乎紧密地联系在一起。我看到的帖子似乎总是在谈论用水豚配黄瓜,或者用Rspec配黄瓜 它们各自的优点/缺点是什么?是否有某些组合可以最好地协同工作?所有这些测试工具都属于测试环境的不同部分 如果您想设置集成测试,那么应该使用cumber,因为它没有真正的替代方案。Cucumber旨在简化

我希望为已经构建的Rails 3应用程序设置一系列集成测试。 该应用程序是用Rails 3和Ruby 1.9.2构建的。我已经看到了对水豚、黄瓜和RSPEC2的推荐,但我不确定它们各自的优点是什么

我还注意到它们似乎紧密地联系在一起。我看到的帖子似乎总是在谈论用水豚配黄瓜,或者用Rspec配黄瓜


它们各自的优点/缺点是什么?是否有某些组合可以最好地协同工作?

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

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

Capybara任务声明是“webrat替代方案,旨在支持所有浏览器模拟器”。因此,要模拟浏览器部分(http请求、DOM操作等),您有两种选择Webrat或Capybara。黄瓜和它们都很好地结合在一起。事实上,它会检测您在系统中安装了哪一个,并在默认情况下使用它

另一侧是Rspec。Rspec不是集成测试的工具,而是单元测试的工具(使用BDD方法)。这本书解释得很清楚。Cucumber处于应用程序行为的外圈,rspec处于类行为的内圈。rspec的替代品是经典的Test::Unit

有关更多信息,请参阅:


总之,使用这三种方法

使用RSpec

  • …用于单独测试模型、控制器和帮助程序中的方法
  • 也称为单元测试
使用黄瓜

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

  • …用于像用户通过浏览器一样导航应用程序
  • …用于测试您的视图,其中包含用户希望看到的内容

答案很好,但我建议添加Cucumber、Capybara、Webrat、RSpec和Unit::Test的链接。我想你会得到更多的投票。非常好的帖子和答案。所以Rspec涵盖Rails的模型单元测试,Cucumber涵盖Rails的集成测试,那么什么涵盖Rails的控制器功能测试呢?@GeorgeW Rails功能测试实际上是单元测试,他们试图孤立地(尽可能地)测试控制器。因此,为了让答案更简单:RSpec适用于除集成测试之外的所有测试,在这里您可以使用Cucumber。当然,你可以找到任何东西的替代品。