Your SlideShare is downloading. ×
0
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Capybara with Rspec
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Capybara with Rspec

7,062

Published on

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

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,062
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
54
Comments
0
Likes
10
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

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

×