0

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:inhas_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
4

1 に答える 1