ruby.railstutorial.org の RoR チュートリアルに取り組んでおり、現在は第 4 章に取り組んでいます。テストは検証されておらず、その理由がわかりません。私の仕様ファイルの上部は次のようになります。その他のメソッドはすべて Help と同じように見えます。
describe "StaticPages" do
let(:page_title) {"Ruby on Rails Tutorial Sample App"}
let(:h1_test) {"should have the h1"}
let(:title_test) {"should have the title"}
describe "Home page" do |title_test, h1_test|
it "#{h1_test} 'Sample App'" do
visit '/static_pages/home'
page.should have_selector('h1',:text=>'Sample App')
end
it "#{title_test} 'Home'" do
visit '/static_pages/home'
page.should have_selector('title', :text=> '#{page_title}')
end
it "should not have a custom page title" do
visit '/static_pages/home'
page.should_not have_selector('title', :text=> '| Home')
end
end
describe "Help page" do |title_test, h1_test|
it "#{h1_test} 'Help'" do
visit '/static_pages/help'
page.should have_selector('h1', :text =>'Help')
end
it "#{title_test} 'Help'" do
visit '/static_pages/help'
page.should have_selector('title',
:text=>'#{page_title} | Help')
end
end
私のapplication_helper.rb:
module ApplicationHelper
def full_title(page_title)
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
"#{base_title} | #{page_title}"
end
end
end
私の application.html.haml ファイル:
!!!
%html
%head
%title= full_title(yield(:title))
= stylesheet_link_tag "application", :media => "all"
= javascript_include_tag "application"
= csrf_meta_tags
%body= yield
これで、4 つのエラーは同じで、単語が 1 つ変わっただけなので、1 つだけ投稿します。
1) StaticPages Contact#<Class:0x0000000446e818> 'Contact'
Failure/Error: page.should have_selector('title', :text=>'#{page_title} | Contact')
expected css "title" with text "\#{page_title} | Contact" to return something
# ./spec/requests/static_pages_spec.rb:65:in `block (3 levels) in <top (required)>'
Hamlを使用する以外にガイドから直接コピーし、スペックファイルの上部の数行を追加してテキストの繰り返しを最小限に抑えているため、私は当惑しています。どのように問題が発生するかがわからないため、ページの html ファイルは含めませんでした。特に、home.html.haml には他のようなものはありませんが、- provide(:title, 'Home')
上記と同じエラーがスローされるためです。どんな助けでも大歓迎です!
編集:これが私のGemfileです:
gem 'rails', '3.2.12'
gem 'haml', '4.0.0'
group :development, :test do
gem 'sqlite3', '1.3.5'
gem 'rspec-rails', '2.11.0'
gem 'haml-rails', '0.4'
gem 'guard-rspec', '1.2.1'
gem 'guard-spork', '1.4.2'
gem 'spork', '0.9.2'
end
group :assets do
gem 'sass-rails', '3.2.5'
gem 'coffee-rails','3.2.2'
gem 'uglifier', '1.2.3'
end
gem 'jquery-rails', '2.0.2'
group :test do
gem 'capybara', '1.1.2'
gem 'rb-inotify', '0.8.8'
gem 'libnotify', '0.5.9'
end
group :production do
gem 'pg', '0.12.2'
end