Capybara with Rspec
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Capybara with Rspec

on

  • 7,251 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
7,251
Views on SlideShare
7,195
Embed Views
56

Actions

Likes
7
Downloads
41
Comments
0

7 Embeds 56

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

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Capybara with Rspec Presentation Transcript

  • 1. Capybaraby:- Omnia Gamal El-Deenemail :- omnia.gamal1988@gmail.comtwitter @Omnia_G
  • 2. Capybara Go away Im busy NOW
  • 3. Why Capybara
  • 4. SetupInstall : sudo gem install capybaraOr Gemfile gem "capybara", :group => :test
  • 5. 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
  • 6. Testtest_file.rb require spec_helper describe "home page" do before :each do # ...... end it "displays greeting" do # ......... end end
  • 7. 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
  • 8. Example
  • 9. Drivers● Driver agnostic● Support : ○ RackTest ○ Selenium ○ Capybara-webkit● Default: rack_test driver
  • 10. 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
  • 11. 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
  • 12. CAPYBARA-WEBKIT● Fast● No browser UI● Using webkit engine● console.log output● Errors in standard output
  • 13. 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
  • 14. Spec_helper.rbENV["RAILS_ENV"] ||= testrequire File.expand_path("../../config/environment", __FILE__)require rspec/railsrequire capybara/rspecrequire capybara-webkitCapybara.javascript_driver = :webkit#...
  • 15. 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
  • 16. Reference :● Example@github OmniaGM/learn-capybara● Browser testing● Capybara● Capybara Cheat Sheet