title: Undefined method 'visit' for #<Class:XYZ> (NoMethodError) [rspec]
body: <p>I'm getting the following error when I try to run an rspec test:</p>
  
  <pre><code>/srv/offerme/spec/requests/static_pages_spec.rb:13: undefined method `visit' for #&lt;Class:0xb3436684&gt; (NoMethodError)
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:238:in `module_eval'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:238:in `subclass'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:224:in `describe'
  from /srv/offerme/spec/requests/static_pages_spec.rb:12
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:238:in `module_eval'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:238:in `subclass'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:224:in `describe'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/dsl.rb:18:in `describe'
  from /srv/offerme/spec/requests/static_pages_spec.rb:3
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load_spec_files'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `map'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load_spec_files'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:22:in `run'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run'
  from /var/lib/gems/1.8/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `autorun'
  from /usr/local/bin/rspec:19
  </code></pre>
  
  <p>The file I get this error in looks like this (spec/requests/static_pages_spec.rb) :</p>
  
  <pre><code>require 'spec_helper'
  
  describe "StaticPages" do
  include Capybara::DSL
    describe "GET /static_pages" do
      it "works! (now write some real specs)" do
        # Run the generator again with the --webrat flag if you want to use webrat methods/matchers
        get static_pages_index_path
        response.status.should be(200)
      end 
    end 
    describe "Home page" do
      visit 'static_pages/home'
      page.should have_content('OfferMe')
    end 
  
  end
  </code></pre>
  
  <p>My spec_helper.rb file looks like this:</p>
  
  <pre><code># This file is copied to spec/ when you run 'rails generate rspec:install'
  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'rspec/autorun'
  require 'capybara/rspec'
  
  # Requires supporting ruby files with custom matchers and macros, etc,
  # in spec/support/ and its subdirectories.
  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
  
  RSpec.configure do |config|
    # ## Mock Framework
    #
    # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
    #
    # config.mock_with :mocha
    # config.mock_with :flexmock
    # config.mock_with :rr
  
    # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
    config.fixture_path = "#{::Rails.root}/spec/fixtures"
  
    # If you're not using ActiveRecord, or you'd prefer not to run each of your
    # examples within a transaction, remove the following line or assign false
    # instead of true.
    config.use_transactional_fixtures = true
  
    # If true, the base class of anonymous controllers will be inferred
    # automatically. This will be the default behavior in future versions of
    # rspec-rails.
    config.infer_base_class_for_anonymous_controllers = false
  
    # Run specs in random order to surface order dependencies. If you find an
    # order dependency and want to debug it, you can fix the order by providing
    # the seed, which is printed after each run.
    #     --seed 1234
    config.order = "random"
    config.include Capybara::DSL
  end
  module ::RSpec::Core
  class ExampleGroup
  include Capybara::DSL
  include Capybara::RSpecMatchers
  end
  end
  </code></pre>
  
  <p>And, finally, my Gemfile looks like this:</p>
  
  <pre><code>source 'https://rubygems.org'
  
  gem 'rails', '3.2.7'
  
  # Bundle edge Rails instead:
  # gem 'rails', :git =&gt; 'git://github.com/rails/rails.git'
  
  group :development, :test do
    gem 'sqlite3'
    gem 'rspec-rails'
  end
  
  group :test do
    gem 'capybara'
  end
  
  gem 'json'
  
  # Gems used only for assets and not required
  # in production environments by default.
  group :assets do
    gem 'sass-rails',   '~&gt; 3.2.4'
    gem 'coffee-rails', '~&gt; 3.2.2'
  
    # See https://github.com/sstephenson/execjs#readme for more supported runtimes
    # gem 'therubyracer', :platforms =&gt; :ruby
  
    gem 'uglifier', '&gt;= 1.0.3'
    gem 'twitter-bootstrap-rails'
  end
  
  gem 'jquery-rails'
  
  # To use ActiveModel has_secure_password
  # gem 'bcrypt-ruby', '~&gt; 3.0.0'
  
  # To use Jbuilder templates for JSON
  # gem 'jbuilder'
  
  # Use unicorn as the app server
  # gem 'unicorn'
  
  # Deploy with Capistrano
  # gem 'capistrano'
  
  # To use debugger
  # gem 'ruby-debug'
  
  gem 'therubyracer', '0.10.1'
  gem 'libv8'
  gem 'webrat'
  </code></pre>
  
  <p>I have seen this GitHub <a href="https://github.com/rspec/rspec-rails/issues/360" rel="nofollow">issue</a> and have tried some of the workarounds as well as looked at some other StackOverflow questions pertaining to the similar issue (that's why some of the code looks redundant/hacky). However, none of them have worked yet. Please help!</p>