cucumber - Rails集成测试

标签 cucumber integration-testing ruby-on-rails-3 rspec2 capybara

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

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

它们各自的优点/缺点是什么?是否有某些组合在一起效果最佳?

最佳答案

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

如果要设置集成测试,则应使用 cucumber ,因为它没有其他选择。 Cucumber旨在简化行为驱动开发,但是即使您不进行BDD操作,Cucumber也非常适合集成测试。

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

在另一边是 Rspec 。 Rspec不是用于集成测试的工具,而是用于单元测试(使用BDD方法)的工具。在http://www.pragprog.com/titles/achbd/the-rspec-book中对此进行了非常清楚的解释。 cucumber 处于应用程序行为的外部,而rspec处于类行为的内部。 rspec的替代方法是经典的 Test::Unit 类。

有关更多信息,请参见:

  • Cucumber
  • Capybara
  • Webrat
  • RSpec
  • Test::Unit
  • 关于cucumber - Rails集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4540968/

    相关文章:

    java - 如何获取倾城报告中的Cucumber步骤和附件?

    cucumber - gradle cucumber jvm异常:在[类路径:]找不到功能

    Node.js BDD。 cucumber 、小 cucumber 还是 cucumber ?

    java - Spring Boot 集成测试无法访问 application.properties 文件

    maven - 第谷集成测试未运行(但单元测试......)

    java - 并行执行测试时获取顺序日志

    ruby-on-rails - 例子?多模型嵌套表单及处理,Rails3+Datamapper

    node.js - 使用 Cucumber 在 Node 中异步执行 JavaScript

    ruby-on-rails-3 - 如何创建自定义 rails 命名空间路由

    javascript - Bootstrap进度条起始值