Note that there are some explanatory texts on larger screens.

plurals
  1. PORspec and named routes
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload