railstutorial.org の本を読んでいるのですが、行き詰まっています。タイトルが示すように、RSpec はタイトル タグを見つけていません。リファクタリングする前にチェックを行ったところ合格しました...一番下に1ページだけ追加しましたが、他の2ページは作成されています。タイトルを除いてすべて同じです。
cmd RSpec 出力:
失敗した例:
rspec ./spec/requests/static_pages_spec.rb:40 # 静的ページには「About Us」というタイトルを付ける必要があります rspec ./spec/requests/static_pages_spec.rb:11 # 静的ページのホームページには「Home」というタイトルを付ける必要があります rspec ./ spec/requests/static_pages_spec.rb:25 # 静的ページのヘルプ ページには「ヘルプ」というタイトルが必要です
宝石ファイル:
source 'https://rubygems.org'
gem "rails", "~> 3.2.12"
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
group :development, :test do gem 'sqlite3', '~> 1.3.7' gem 'rspec-rails', '~> 2.12.2' end
# Gems used only for assets and not required
# in production environments by default. group :assets do gem 'sass-rails', '~> 3.2.4' gem 'coffee-rails', '~> 3.2.2'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', :platforms => :ruby
gem "uglifier", "~> 1.3.0" end
gem "jquery-rails", "~> 2.2.1"
group :test do gem "capybara", "~> 2.0.2" end
group :production do gem "pg", "~> 0.14.1" end
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 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 'debugger'
ルート:
SampleApp::Application.routes.draw do
get "static_pages/home"
get "static_pages/help"
get "static_pages/about"
end
spec.rb:
require 'spec_helper'
describe "Static Pages" do
describe "Home page" do
it "should have the h1 'Sample App'" do
visit '/static_pages/home'
page.should have_selector('h1', :text => 'Sample App')
end
it "should have the title 'Home'" do
visit '/static_pages/home'
page.should have_selector('title',
:text => "Ruby on Rails Tutorial Sample App | Home")
end
end
describe "Help page" do
it "should have the h1 'Help'" do
visit '/static_pages/help'
page.should have_selector('h1', :text => 'Help')
end
it "should have the title 'Help'" do
visit '/static_pages/help'
page.should have_selector('title',
:text => "Ruby on Rails Tutorial Sample App | Help")
end
end
describe "About page" do
it "should have the h1 'About Us'" do
visit '/static_pages/about'
page.should have_selector('h1', :text => 'About Us')
end
end
it "should have the title 'About Us'" do
visit '/static_pages/about'
page.should have_selector('title',
:text => "Ruby on Rails Tutorial Sample App | About Us")
end
end
application.html.erb:
<!DOCTYPE html>
<html>
<head>
<title>Ruby on Rails Tutorial Sample App | <%= yield(:title) %></title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
home.html.erb:
<% provide(:title, "Home") %>
<h1>Sample App</h1>
<p>
This is the home page for the
<a href="http://railstutorial.org/">Ruby on Rails Tutorial</a>
sample application.
</p>