#ruby-on-rails-3
#ruby-on-rails-3
Вопрос:
Как только я завершил главу 5, озаглавленную «заполнение макета», а также первоначальное создание пользователей, я запустил rspec и получаю следующее:
1) PagesController GET 'home' should have the right title
Failure/Error: response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Home")
expected following output to contain a <title>Ruby on Rails Tutorial Sample App | Home</title>
2) PagesController GET 'contact' should have the right title
Failure/Error: response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Contact")
expected following output to contain a <title>Ruby on Rails Tutorial Sample App | Contact</title>
3) PagesController GET 'about' should have the right title
Failure/Error: response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | About")
expected following output to contain a <title>Ruby on Rails Tutorial Sample App | About</title>
Я работаю над этим уже около дня, и я просто не знаю, что я делаю не так? Кроме того, страницы запускаются отлично
вот код pagescontroller, для которого требуется ‘spec_helper’
describe PagesController do
render_views
describe "GET 'home'" do
it "should be successful" do
get 'home'
response.should be_success
end
it "should have the right title" do
get 'home'
response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Home")
end
end
describe "GET 'contact'" do
it "should be successful" do
get 'contact'
response.should be_success
end
it "should have the right title" do
get 'contact'
response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Contact")
end
end
describe "GET 'about'" do
it "should be successful" do
get 'about'
response.should be_success
end
it "should have the right title" do
get 'about'
response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | About")
end
end
end
также здесь находится мое приложение / views / layouts / application.html.erb
<title><%= @title %></title>
вот мой layout_links_spec
require 'spec_helper'
it "should have a Home page at '/'" do
get '/'
response.should have_selector('title', :content => "Home")
end
it "should have a Contact page at '/contact'" do
get '/contact'
response.should have_selector('title', :content => "Contact")
end
it "should have have an About page at '/about" do
get '/about'
response.should have_selector('title', :content => "About")
end
it "should have a Help pageat '/help'" do
get '/help'
response.should have_selector('title', :content => "Help")
end
it "should have a signup page at '/signup'" do
get '/signup'
response.should have_selector('title', :content => "Sign up")
end
it "should have the right links on the layout" do
visit root_path
response.should have_selector('title', :content => "Home")
end
end
Комментарии:
1. Пожалуйста, покажите нам соответствующий код или конкретный раздел из главы 5, который вызывает эту проблему.
Ответ №1:
Убедитесь, что вы включили render_views
require 'spec_helper'
describe UsersController do
render_views
describe "GET 'new'" do
it "should be successful" do
get :new
response.should be_success
end
it "should have the right title" do
get :new
response.should have_selector("title", :content => "Sign up")
end
end
end
Ответ №2:
Мне потребовалось некоторое время, чтобы выяснить, в чем именно заключалась ошибка, но убедитесь, что вы следуете инструкциям, изложенным в руководстве Майка.
Майк очень эффективен и тщателен, но если вы пропустите шаг, вы получите ошибки. Я видел ту же проблему, и сначала вам нужно убедиться, что вы используете самый обновленный файл routes из static_pages_spec.rb
листинга 5.20, наиболее обновленный файл routes из листинга 5.23 и убедитесь, что вы удалили publicindex.html
файл.
Ваши ошибки должны исчезнуть, как только вы выполните эти шаги.