• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Capybara with Rspec
 

Capybara with Rspec

on

  • 6,525 views

Learning how to use capybara and capybara-webkit with rspec.

Learning how to use capybara and capybara-webkit with rspec.
Example :- https://github.com/OmniaGM/learn-capybara

Statistics

Views

Total Views
6,525
Views on SlideShare
6,476
Embed Views
49

Actions

Likes
7
Downloads
36
Comments
0

6 Embeds 49

http://things.mosaic.com 32
http://www.linkedin.com 9
https://twitter.com 4
http://www.slashdocs.com 2
http://www.hanrss.com 1
http://omniagm.github.io 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

Capybara with Rspec Capybara with Rspec Presentation Transcript

  • Capybaraby:- Omnia Gamal El-Deenemail :- omnia.gamal1988@gmail.comtwitter @Omnia_G
  • Capybara Go away Im busy NOW
  • Why Capybara
  • SetupInstall : sudo gem install capybaraOr Gemfile gem "capybara", :group => :test
  • Using Capybara with RSpec● spec/spec_helper.rb require capybara/rails require capybara/rspec● create test directory /spec/requests● add capybara dsl to RSpec.configure in spec_helper.rb RSpec.configure do |config| config.include Capybara::DSL, :type => :request
  • Testtest_file.rb require spec_helper describe "home page" do before :each do # ...... end it "displays greeting" do # ......... end end
  • The DSL● navigating (visit)● matcher (page.should)● clicks (click_link - click_button)● action (fill_in)● finders (find)● scope (within)● Scripting (page.execute_script)● debugger (page.htm - save_and_open_page) ○ NOTE : Youll need to install launchy (gem launchy, : group => :test)and make sure its available to open pages with save_and_open_page
  • Example
  • Drivers● Driver agnostic● Support : ○ RackTest ○ Selenium ○ Capybara-webkit● Default: rack_test driver
  • RackTest● Its pure Ruby, So it interacts directly with Rack interfaces● It does not require a server to be startedBut● Not used to test a remote application, or to access remote URLs (e.g., redirects to external sites, external APIs, or OAuth services)● Dumb● Its not have any support for executing JavaScript
  • Selenium● Runs tests in a real browser● Supports any Javascript your browser supports, just like real users● Easy to set up with capybaraBut● Slow● GUI browser adds a lot of cruft you don’t want● Unfriendly ○ No console.log output ○ invisible javascript errors
  • CAPYBARA-WEBKIT● Fast● No browser UI● Using webkit engine● console.log output● Errors in standard output
  • Setup capybara-webkit:Gemfile gem "capybara-webkit", :group => :test ○ You didnt need capybara itself anymore ○ You will need database_cleaner because database transactions aren’ t compatible with rspec drivers besides Rack::Test gem database_cleaner, :group => :test
  • Spec_helper.rbENV["RAILS_ENV"] ||= testrequire File.expand_path("../../config/environment", __FILE__)require rspec/railsrequire capybara/rspecrequire capybara-webkitCapybara.javascript_driver = :webkit#...
  • DatabaseCleaner configurationRSpec.configure do |config| #... config.use_transactional_fixtures = false config.before(:suite) do DatabaseCleaner.strategy = :truncation end config.before(:each) do DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean endend
  • Reference :● Example@github OmniaGM/learn-capybara● Browser testing● Capybara● Capybara Cheat Sheet