Michael Hartl の優れた Ruby on Rails チュートリアルをゆっくりと進めていきます。第 5 章の演習までは、すべてが順調に進んでいました。今、私はとても立ち往生しています。実際の演習のセクションで詳しく説明されている変更を行った後、RSpec テストが失敗するようになりました。
- SPORK を実行していることに注意してください (ただし、SPORK を使用していない場合もテストは失敗します)。
テストした各静的ページから取得した出力の例を次に示します。
静的ページ ホームページ すべての静的ページと同じように動作する必要があります 失敗/エラー: { should have_selector('title', text: full_title(page_title)) } TypeError: RSpec::Matchers::BuiltIn::Include を文字列に変換できません共有例グループ: ./spec/requests/static_pages_spec.rb:19 から呼び出される「すべての静的ページ」 # (eval):2:in
has_selector?' # ./spec/requests/static_pages_spec.rb:9:in
ブロック (3 レベル) in '
ここに 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_selector('title', text: full_title(page_title)) }
end
describe "Home page" do
before { visit root_path }
before { visit root_path }
let(:heading) { 'Sample App' }
let(:page_title) { '' }
it_should_behave_like "all static pages"
it { should_not have_selector 'title', text: '| Home' }
end
describe "Help page" do
before { visit root_path }
before { visit root_path }
let(:heading) { 'Sample App' }
let(:page_title) { '' }
it_should_behave_like "all static pages"
it { should_not have_selector 'title', text: '| Help' }
end
describe "About page" do
before { visit root_path }
let(:heading) { 'Sample App' }
let(:page_title) { '' }
it_should_behave_like "all static pages"
it { should_not have_selector 'title', text: '| About' }
end
describe "Contact page" do
before { visit root_path }
let(:heading) { 'Sample App' }
let(:page_title) { '' }
it_should_behave_like "all static pages"
it { should_not have_selector 'title', text: '| Contact' }
end