心はいつも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
いまだにユビキタスなSONYとクラウドに向かうApple

PS3のトルネが良さそう@ヤマダ電機。PS3本体とチューナーの2台になってスッキ …

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

5.3レイアウトのリンク、です。 AboutはRailsらしくない、とおっしゃっ …

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

3.3.3埋め込みRubyです。viewにrubyコードを埋め込んでtitleを …

OpneSSL,Readline,Libyamlをインストールする

先ほどインストールしたHomebrewを使って、rbenvをインストールしたいと …

no image
Ruby1.9と2.0、複数バージョンのRubyをインストールする。

Ruby1.9 + Rails3.2もいいけど、Ruby2.0 + Rails4 …

no image
RailsのRoutingいろいろ

コントローラーがAbc アクションがactrionxだとして、 http://y …

no image
RubyとRailsのお作法

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

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

9.1.2編集の失敗、です。 テストを書きます リスト9.9 ユーザーupdat …

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

6.2.4フォーマットを検証する です。 メールアドレスは文字数制限だけじゃだめ …

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

第11章ユーザーをフォローする、です。ようやく最終章。1週間でできるつもりが3週 …