11. RackTest
● It's pure Ruby, So it interacts directly with Rack
interfaces
● It does not require a server to be started
But
● Not used to test a remote application, or to access
remote URLs (e.g., redirects to external sites, external
APIs, or OAuth services)
● Dumb
● It's not have any support for executing JavaScript
12. Selenium
● Runs tests in a real browser
● Supports any Javascript your browser supports, just like
real users
● Easy to set up with capybara
But
● Slow
● GUI browser adds a lot of cruft you don’t want
● Unfriendly
○ No console.log output
○ invisible javascript errors
13. CAPYBARA-WEBKIT
● Fast
● No browser UI
● Using webkit engine
● console.log output
● Errors in standard output
14. Setup capybara-webkit:
Gemfile
gem "capybara-webkit", :group => :test
○ You didn't 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
16. DatabaseCleaner configuration
RSpec.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
end
end