心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

RailsTutorial4.0を高速で復習する。3.3章。

   


テストコードが長くなったからリファクタリングするかも、、といいながら、静的ページに多少動的要素を加えてテスト書きましょう、というコーナーっぽいです。

タイトルのテストコードを書く

3.3.1タイトル変更をテストする。です。今静的ページはtitleタグベタ打ちですが、これを動的変更するようにしよう!そのまえにそのテストコートを書こう!というコーナーです。

レイアウトファイルを使ってのリファクタリングを最後にやりたいから、という理由で
mv app/views/layouts/application.html.erb foobar # 一時的な変更
レイアウトファイル名の変更、というとんでもない指示がでていますが、現実的じゃないので無視します。mvコマンド打たずに進めます。

とりあえずの仕様としては、タイトルを
“Ruby on Rails Tutorial Sample App | Home”
のように |で区切ったあとを静的ページの名前、前を固定的にRuby on Rails Tutorial Sample App とすることです。なので。そういうテストコードを3静的ページ分書きます。

リスト3.19 タイトルのテストを含むStaticPagesコントローラのspecファイル。
spec/requests/static_pages_spec.rb

require 'spec_helper'

describe "静的ページのテスト" do

  describe "Homeページのテスト" do
    it "コンテンツに'Twili'という文字がある" do
      visit '/static_pages/home'
      expect(page).to have_content('Sample App')
    end
    it "タイトルに'Home'という文字がある" do #<=ここが追加
      visit '/static_pages/home'
      expect(page).to have_title("Ruby on Rails Tutorial Sample App | Home")
    end
  end

  describe "Helpページのテスト" do
    it "コンテンツに'Help'という文字がある"  do
      visit '/static_pages/help'
      expect(page).to have_content('Help')
    end
    it "タイトルに'Help'という文字がある" do #<=ここが追加
      visit '/static_pages/help'
      expect(page).to have_title("Ruby on Rails Tutorial Sample App | Help")
    end
  end

  describe "Aboutページのテスト" do
    it "コンテンツに'About Us'という文字がある" do 
      visit '/static_pages/about'
      expect(page).to have_content('About Us')
    end
    it "タイトルに'About Us'という文字がある" do
      visit '/static_pages/about'
      expect(page).to have_title("Ruby on Rails Tutorial Sample App | About Us")
    end
  end
end

タイトルとコンテンツの違いは、
to have_titleかto have_contentで言えているようです。現実問題、こういう試験が必要かはわかりませんが、ページ数がン千にもなるようなサイトだと試験かいてもよさそう。あ、でもタイトルタグはSEOでは必須だな。h1もRSpecでチェックできるのかは私はまだわからない。。

テスト実行すると

bundle exec rspec spec/requests/static_pages_spec.rb

当然エラーです。

1) 静的ページのテスト Helpページのテスト タイトルに’Help’という文字がある
Failure/Error: expect(page).to have_title(“Ruby on Rails Tutorial Sample App | Help”)
expected #has_title?(“Ruby on Rails Tutorial Sample App | Help”) to return true, got false
# ./spec/requests/static_pages_spec.rb:23:in `block (3 levels) in

2) 静的ページのテスト Homeページのテスト タイトルに’Home’という文字がある
Failure/Error: expect(page).to have_title(“Ruby on Rails Tutorial Sample App | Home”)
expected #has_title?(“Ruby on Rails Tutorial Sample App | Home”) to return true, got false
# ./spec/requests/static_pages_spec.rb:12:in `block (3 levels) in

3) 静的ページのテスト Aboutページのテスト タイトルに’About Us’という文字がある
Failure/Error: expect(page).to have_title(“Ruby on Rails Tutorial Sample App | About Us”)
expected #has_title?(“Ruby on Rails Tutorial Sample App | About Us”) to return true, got false
# ./spec/requests/static_pages_spec.rb:34:in `block (3 levels) in

全部タイトルのところがエラーに。

ちょっと長くなったので続きます。
試験はエラーなのでまだcommitはしません。

次は「3.3.2タイトルのテストをパスさせる」です。

 - テクニカル ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

no image
RubyとRailsのお作法

コーディングスタイルって結構気になります。 最初につとめた会社で、プログラミング …

no image
WindowsのiTunesからMacのiTunesへのデータ移行

MacBookAir 2日め。なかなかMacにふみきれなかったのは、Window …

no image
RailsTutorial4.0を高速で復習する。10.2章。

10.2マイクロポストを表示する、です。 ポストの投稿ではなく、表示だけを先に作 …

no image
RailsTutorial4.0を高速で復習する。6.2.5章。

6.2.5一意性を検証する、です。メールアドレスをIDとして使うため(でなくとも …

no image
ブログは独自ドメインの方が強いかもね

すっかり月一ペースで更新するブログになってしまい焦ります。 震災直後に政権批判し …

no image
RailsTutorial4.0を高速で復習する。6.2.3章。

6.2.3長さを検証する、です。空データを拒否した次は、入力できるデータ長の制限 …

WordPressの管理画面真っ白問題に対処しました

WordPressの自作テンプレを作ったはいいものの、管理画面が真っ白になって投 …

no image
RailsTutorial4.0を高速で復習する。10.1.4章。

10.1.4マイクロポストを改良する、です。 has_many関連付けしたので、 …

no image
RailsTutorial4.0を高速で復習する。9.3.2章。

9.3.2サンプルのユーザー、です。 Faker gemで、実際にありそうなユー …

Railsを立ち上げる

RubyのアップデートとRailsのインストールが無事終わったので、いよいよRa …