ruby-on-rails - cucumber capybara 它是如何工作的

标签 ruby-on-rails cucumber capybara

我在 rails3 应用程序中使用 capybara 和 cucumber 。一切正常。但是我不明白测试是如何工作的。

假设我有一个标准的 cucumber 功能测试。我没有使用@selenium 等。这是一个简单的 Vanilla 测试。现在当我跑

bundle exec cucumber

该 Rails 服务器是否在端口上启动?如果是,那么端口号是多少?同样在普通的情况下, capybara 使用机架测试。然而,rack-test 不负责运行服务器。所以我很困惑整个事情是如何运作的。 cucumber 在扮演什么角色。机架测试正在做什么工作以及 capybara 正在做什么。

如果您有文章链接,请与我分享。我真的很想知道事情是如何协同工作的。

最佳答案

虽然我真的不知道这是如何工作的最深层次的细节。但我所做的足以为您提供一些观点。

Cucumber 是一个 ruby​​ 验收测试框架,它允许您用简单的英语编写验收。现在一般来说,它位于 Webrat 或 Capybara 之上,这为其提供了真正的功能,即模拟浏览器或自动浏览器测试。

Capybara 或 Webrat 使运行验收测试变得容易。Capybara 使使用各种驱动程序运行验收测试变得非常简单。驱动程序,即 Selenium、celerity 或机架测试。在普通情况下,rack-test 用于模拟浏览器测试。

Rack-Test 本身只负责创建您在其中运行测试的 session ,步骤定义等已由 capybara 创建。所以基本上没有服务器运行其由机架测试创建的公正 session (准确地说是模拟 session )。 Capybara 现在在由驱动程序(机架测试或其他)创建的 session 之上提供了一个查找器方法和匹配器等,以帮助您创建自己的步骤定义。

Cucumber 在 session 和测试中运行这些步骤,即其中的查找器/匹配器等。

关于ruby-on-rails - cucumber capybara 它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4741316/

相关文章:

ruby - 如何使用 Cucumber 测试 DelayedJob?

ruby-on-rails - "bundler: command not found: thin"heroku 部署 rails

ruby-on-rails - 使用 Nokogiri 通过 CDATA 属性在 XML 文件中查找元素?

selenium-webdriver - cucumber 在功能文件中的多个场景中给出空指针异常

ruby-on-rails - 为 capybara 安装 webkit

javascript - 如何检测视口(viewport)中是否存在元素? ( capybara 、 ruby )

ruby-on-rails-3 - 如何使用 Capybara、Rails、MiniTest 规范填写 datepicker

ruby-on-rails - ruby /rails : How to get same encrypted value every time we encrypt a particular string

ruby-on-rails - Generator Ruby Gem 中没有用于配置的方法 'configuration'

ruby-on-rails - cucumber 中的click_link图像