`

脱离rails环境单独使用capybara以及使用capybara测试拖放

阅读更多
require 'rubygems'
require 'capybara'
require 'capybara/dsl'

Capybara.run_server = false
Capybara.current_driver = :selenium
Capybara.app_host = 'http://www.google.com'

module MyCapybaraTest
  class Test
    include Capybara
    def test_google
      visit('/')
    end
  end
end

t = MyCapybaraTest::Test.new
t.test_google


注意只有内置的selenium,或者使用其他扩展才能测试javascript,例如drag and drop


describe Capybara::Driver::Selenium do
  before do
    @driver = Capybara::Driver::Selenium.new(TestApp)
  end
 
  it_should_behave_like "driver"
  it_should_behave_like "driver with javascript support"
end

shared_examples_for "driver with javascript support" do
  before { @driver.visit('/with_js') }
 
  describe '#find' do
    it "should find dynamically changed nodes" do
      @driver.find('//p').first.text.should == 'I changed it'
    end
  end
 
  describe '#drag_to' do
    it "should drag and drop an object" do
      draggable = @driver.find('//div[@id="drag"]').first
      droppable = @driver.find('//div[@id="drop"]').first
      draggable.drag_to(droppable)
      @driver.find('//div[contains(., "Dropped!")]').should_not be_nil
    end
  end
 
  describe "#evaluate_script" do
    it "should return the value of the executed script" do
      @driver.evaluate_script('1+1').should == 2
    end
  end
end



#rspec版本
#Gemfile
source 'http://rubygems.org'
gem 'rspec'
gem 'capybara', :git => 'https://github.com/jnicklas/capybara.git'
gem 'launchy'
gem 'ruby-debug19'
#sign_in_spec.rb
require File.dirname(__FILE__) + '/../spec_helper'
  
describe "sign in", :type => :request do
  it "should sign me in" do  
    # Sign in and make assertions
  end  
end  
#spect_helper.rb
require 'rubygems'
require 'bundler/setup'
require 'ruby-debug'
require 'rspec'
require 'capybara/rspec'
Dir.glob(File.dirname(__FILE__) + '/factories/*', &method(:require))

# Capybara configuration
Capybara.default_driver = :selenium
Capybara.save_and_open_page_path = File.dirname(__FILE__) + '/../snapshots'

# RSpec configuration
RSpec.configure do |config|
  config.before(:all) do
    # Create fixtures
  end
  config.after(:all) do
    # Destroy fixtures
  end
  config.around(:each) do |example|
    begin
      example.run
    rescue Exception => ex
      save_and_open_page
      raise ex
    end
  end
end


capybara相关API
这是一个cucumber配合capybara测试外部URL,不是本机网站的例子
一些capybara的扩展驱动
关于capybara
分享到:
评论

相关推荐

    Ruby-一个微小的Rails引擎通过在开发环境中记录浏览器操作来生成Capybara测试场景

    “Ruby-一个微小的Rails引擎通过在开发环境中记录浏览器操作来生成Capybara测试场景”这个项目提供了一种创新的方法,它实际上是一个小型的Rails引擎插件,可以在开发环境中自动记录开发者对应用程序的实际操作,并...

    使用RSpec 测试Rails 程序.pdf

    3. **RSpec配置**:编辑`spec_helper.rb`来配置RSpec的行为和偏好,例如指定默认的测试环境、启用或禁用特定特性等。 4. **生成器**:使用`rails generate rspec:install`命令来初始化RSpec,并创建必要的目录结构和...

    rails-capybara-demo

    通过Capybara,我们可以编写出更加贴近真实用户交互的测试,而Database_Cleaner则确保了测试环境的清洁。这样的测试实践有助于提升代码质量,减少因未捕获的错误导致的问题,从而增强应用的稳定性和可靠性。

    centOS Rails3环境搭建

    ### CentOS环境下Rails 3开发环境搭建详解 #### 一、准备工作与环境配置 在开始部署Rails 3开发环境之前,我们需要确保系统上已经安装了一些基本的软件包和工具。这一步骤对于后续的Ruby和Rails安装至关重要。 ##...

    ruby on rails 环境搭建

    在Ruby on Rails环境中,开发者可以创建、运行、测试和部署Web应用。RoR的便利性在于其“约定优于配置”的原则,使得许多常见的任务自动化,降低了开发复杂度。因此,正确搭建RoR环境是高效开发的关键。 总的来说,...

    搭建Rails测试环境2: Autotest和Spork的安装和配置

    至此,你已经成功地在Rails项目中搭建了Autotest和Spork的测试环境。当你修改代码后,测试会自动运行,Spork会提供更快的测试执行速度。这种高效的工作流程有助于提高开发效率,确保代码质量和项目的稳定性。 然而...

    配置rails环境

    7. **运行测试**:Rails项目通常包含测试套件,可以使用`rake test`或`rspec`(如果使用RSpec测试框架)来运行这些测试,确保代码正常工作。 8. **配置开发环境**:除了基本的Rails设置,开发者还可能需要配置其他...

    rspec-setup-rails:如何使用 Rspec 快速设置导轨

    ##在 Rails 中快速设置 RSpec,使用 Capybara、Factory Girl、Database Cleaner、Shoulda-matchers 等... 在命令行中,运行rails new app_name -T (关闭默认测试单元) 将 Gems 添加到 gemfile,然后捆绑。 gem '...

    cucumber-rails:Cucumber的Rails Generators,对Capybara和DatabaseCleaner具有特殊支持

    在使用生成器之前,请按照以下步骤将gem添加到项目的Gemfile中: group :test do gem 'cucumber-rails' , require : false # database_cleaner is not required, but highly recommended gem 'database_cleaner'...

    tdd-rails-pluralsight:使用RSpec,Capybara和Cucumber以及Pluralsight课程学习Rails的TDD

    用生成的目录测试新动作并显示动作测试创建动作测试索引和编辑操作测试更新和销毁操作安装和设置Devise gem 测试认证测试授权模型测试模型的责任测试验证测试协会测试实例方法测试数据库查询隔离测试嘲笑,存根和...

    深入解析Rails测试策略:单元测试与功能测试的区别

    在软件开发中,测试是确保...通过本文的探讨,我们了解到了Rails中单元测试和功能测试的区别,以及如何利用Rails的测试工具来编写高质量的测试代码。掌握这些知识,将有助于开发者在Rails项目中实施有效的测试策略。

    Ruby on Rails环境搭建(基于WinXP & RadRails)

    在本教程中,我们将深入探讨如何在Windows XP操作系统上搭建Ruby on Rails开发环境,特别强调使用RadRails作为集成开发环境(IDE)。Ruby on Rails(RoR)是一个强大的Web应用程序框架,它基于Ruby编程语言,提供了...

    rails-i18n, 用于收集 Ruby on Rails i18n 环境数据以及其他有趣的Rails 相关 i18n 内容的存储库.zip

    rails-i18n, 用于收集 Ruby on Rails i18n 环境数据以及其他有趣的Rails 相关 i18n 内容的存储库 Rails 语言环境数据存储库 中心收集区域设置数据,以便在 ruby 上使用。 gem-安装添加到你的Gemfile:gem 'rails-i18n...

    Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf

    这部分讲解了如何在测试前设置环境,以及测试结束后如何清理资源,避免测试间相互影响。 九、测试路由 测试应用的路由配置同样重要,该指南提供了如何测试路由的方法,确保应用中的URL路径与预期一致。 十、测试...

    Rails项目源代码

    这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何利用Rails的强大功能来创建一个允许用户上传、分享和浏览图片的应用。 1. **Rails框架基础**: Rails的核心理念是DRY(Don't...

    imgur_clone:使用 Rails、RSpec 和 Capybara 构建的 Imgur Clone

    您可能想要涵盖的内容: Ruby版系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列、缓存服务器、搜索引擎等) 部署说明… 如果您不打算运行rake doc:app请随意使用不同的标记语言。

    evil_systems:使用Rails和Capybara增强系统测试的简便方法

    完整的API文档可以在这里找到:安装将此行添加到您的应用程序的Gemfile中: gem 'evil_system_tests' 然后执行: bundle设置最小测试导航到Rails应用test/application_system_test_case.rb中的test/application_...

    Rails3-使用ajax处理并发

    标签 "源码" 和 "工具" 暗示文章可能深入探讨了Rails的内部机制,以及可能使用的一些辅助工具或插件,如jQuery或Turbolinks,以增强Ajax功能。然而,由于没有具体的内容,这些都只是基于常规知识的推测。文件名 ...

    heavens_door:Capybara Rails测试方案记录器

    一个微型Rails引擎,通过在开发环境中记录浏览器操作来生成水豚测试场景。 安装 将此行添加到Rails应用程序的Gemfile中(在大多数情况下,仅适用于开发组): gem 'heavens_door' , group : :development 用法 开始...

    关于rails 3.1 cucumber-rails 1.2.0

    Cucumber-Rails集成了Cucumber与Rails,使得开发者能够在Rails环境中方便地使用Cucumber进行功能测试。 在 Rails 应用中使用 Cucumber-Rails,开发者可以创建一个名为`features`的目录,里面包含这些Gherkin特性...

Global site tag (gtag.js) - Google Analytics