rspec-rails supports integration with Capybara out of the box by adding its Capybara::DSL (visit/page) and Capybara::RSpecMatchers to the examples in the applicable directories, which differ slightly between Capybara 1.x and Capybara >= 2.x. ## Capybara::DSL Adds the `visit` and `page` methods, which work together to simulate a GET request and provide access to the result (via `page`). ## Capybara::RSpecMatchers Exposes matchers used to specify expected HTML content (e.g. `should_not have_selector` will work correctly). ## Capybara 1.x Capybara::DSL is added to examples in: * spec/requests # included by Capybara * spec/controllers Capybara::RSpecMatchers is added to examples in: * spec/requests # included by Capybara * spec/controllers * spec/views * spec/helpers * spec/mailers ## Capybara 2.0 To use Capybara 2.0, you need rspec-rails-2.11.1 or greater. Capybara::DSL is added to examples in: * spec/features Capybara::RSpecMatchers is added to examples in: * spec/features * spec/controllers * spec/views * spec/helpers * spec/mailers ## Upgrading to Capybara-2.0 Many users have been confused by the co-existence of the the Capybara::DSL (visit/page) alongside the rack-test DSL (get|post|put|delete|head/response.body) in examples in spec/requests and spec/controllers. As of rspec-rails-2.11.1 and capybara-2.0.0.beta2, these are separated as follows: * Capybara::DSL is included `spec/features` * rack-test DSL is included in `spec/requests` and `spec/controllers` Capybara::RSpecMatchers is added to examples in: * spec/features * spec/controllers * spec/views * spec/helpers * spec/mailers If you're upgrading to Capybara-2.0 and you used visit/page in spec/requests you'll want to move those examples to spec/features and they should just work. If you want to leave those examples in spec/requests, you can include Capybara::DSL in those examples yourself as follows, but this is absolutely not recommended as you will be overriding the intended behavior and accepting the risks associated with doing so: # not recommended! RSpec.configure do |c| c.include Capybara::DSL, :file_path => "spec/requests" end