title: Rspec and named routes
body: <p>I'm quite new to rails, and trying to follow the railstutorial. Everything goes fine, except for my tests which can't get past the named routes (5.3.3)</p>
  
  <p>My routes.rb :</p>
  
  
  
  <pre class="lang-rb prettyprint-override"><code> SampleApp::Application.routes.draw do
  
   resources :users
   match '/signup',  to: 'users#new'
  
   match '/help',    to: 'static_pages#help'
   match '/about',   to: 'static_pages#about'
   match '/contact', to: 'pages#contact'
  
   root to: 'static_pages#home'
  
   #Commented stuff
  </code></pre>
  
  <p>My firsts tests (spec/controllers/static_pages_controller_spec.rb) :</p>
  
  <pre class="lang-rb prettyprint-override"><code>describe "Static pages" do
  
  subject { page }
  
  shared_examples_for "all static pages" do
    it { should have_selector('h1',    text: heading) }
    it { should have_selector('title', text: full_title(page_title)) }
  end
  
  describe "Home page" do
    before { visit root_path }
    let(:heading)    { 'Sample App' }
    let(:page_title) { 'Home' }
  
    it_should_behave_like "all static pages"
  end
  
  #Other tests
  </code></pre>
  
  <p>The spec_helper.rb looks like (without all the commented stuff)</p>
  
  <pre class="lang-rb prettyprint-override"><code>ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'rspec/autorun'
  
  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
  
  RSpec.configure do |config|
      config.fixture_path = "#{::Rails.root}/spec/fixtures"
      config.use_transactional_fixtures = true
      config.infer_base_class_for_anonymous_controllers = false
  end
  </code></pre>
  
  <p>The errors I get from rspec are all like this one :</p>
  
  <pre class="lang-rb prettyprint-override"><code> Static pages Home page it should behave like all static pages 
   Failure/Error: before { visit root_path }
   NameError:
     undefined local variable or method `root_path' for #&lt;RSpec::Core::ExampleGroup::Nested_2::Nested_1::Nested_1:0x00000004a12210&gt;
   Shared Example Group: "all static pages" called from ./spec/controllers/static_pages_controller_spec.rb:17
   # ./spec/controllers/static_pages_controller_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;'
  </code></pre>
  
  <p>I already tried using </p>
  
  <pre class="lang-rb prettyprint-override"><code> include Rails.application.routes.url_helpers
  </code></pre>
  
  <p>in the spec_helper, but it changed my errors to </p>
  
  <pre class="lang-rb prettyprint-override"><code> Static pages Home page it should behave like all static pages 
   Failure/Error: Unable to find matching line from backtrace
   SystemStackError:
     stack level too deep
   # /usr/lib/ruby/1.9.1/forwardable.rb:185
  </code></pre>
  
  <p>I also tried different way of renaming my routes, but none of them worked. I'm back to the tutorial version.</p>
  
  <p>If it can be of any help in finding what exactly is a problem, I'm on Ubuntu 11.10, with rails 3.2.1 and ruby 1.9.2p290. Hope you can help, I spend quite a while googling for a solution and didn't find any ^^'</p>