Привет, я новичок в Rails и Rspec, и я просто читаю учебник Майкла Хартла. Я застрял на том месте, где запускал свой static_pages_spec.rb
C:/Rails/sample_app/spec/requests/static_pages_spec.rb:48:in `block (2 levels) i
n <top (required)>': undefined local variable or method `root_path' for #<Class:
0x55795b0> (NameError)
static_pages_spec.rb:
require 'spec_helper'
describe "Static pages" do
subject { page }
shared_examples_for "all static pages" do
it { should have_selector('h1', text: heading) }
it { should have_title(full_title(page_title)) }
end
describe "Home page" do
before { visit root_path }
let(:heading) { 'Sample App' }
let(:page_title) { '' }
it_should_behave_like "all static pages"
it { should_not have_title('| Home') }
end
describe "Help page" do
before { visit help_path }
let(:heading) { 'Help' }
let(:page_title) { 'Help' }
it_should_behave_like "all static pages"
end
describe "About page" do
before { visit about_path }
let(:heading) { 'About' }
let(:page_title){ 'About' }
it_should_behave_like "all static pages"
end
describe "Contact page" do
before { visit contact_path }
let(:heading) { 'Contact' }
let(:page_title){ 'Contact' }
it_should_behave_like "all static pages"
end
describe "should have the right links on the layout" do
visit root_path
click_link "About"
expect(page).to have_title(full_title('About Us'))
click_link "Help"
expect(page).to have_title(full_title('Help'))
click_link "Contact"
expect(page).to have_title(full_title('Contact'))
click_link "Home"
click_link "Sign up now!"
expect(page).to have_title(full_title('Sign up'))
click_link "sample app"
expect(page).to have_title(full_title('Sample App'))
end
end
Я не знаю, что случилось. Я использовал этот тест ~ 20 раз с «root_path», но раньше он никогда не создавал проблем. Если это будет полезно, вот мои маршруты.rb:
SampleApp::Application.routes.draw do
root 'static_pages#home'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
match '/signup', to: 'users#new', via: 'get'
get "users/new"
end
Я только что просмотрел все файлы, которые редактировал за последние 20 минут, но не нашел ничего, что могло бы объяснить это.