心はいつも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
RailsTutorial4.0を高速で復習する。10.3.3章。

10.3.3フィードの原型、です。 仕様の確認 ユーザーログイン後、トップページ …

no image
MacBookAir 1日め

ようやくMacBookAir を購入しました。Dellノートがずっと調子悪かった …

iPad使用前/使用後、雑感。

5/28にiPadがAppleStoreからクロネコヤマトで届けられました。 週 …

Mac miniの液晶モニターにDell U2713HM使っています。

次期モデルが出るかもしれないのにMac miniを買って、自分でメモリを16Gに …

no image
RailsTutorial4.0を高速で復習する。5.6章。演習2問目のつづき。

5.6章。演習2問目です。TDDにこだわり、あえてこの問題をするまで、ヘッダーや …

no image
ヘルパーメソッドを自作する

便利なrailsのヘルパーメソッド。自分でも作れます。 作るときは、 アプリのd …

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

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

教育のためならば、iPadアプリ料金なんて青天井ですわ

今年4月、USでのiPad発売。姪の中学入学祝いにちょうどいいなと思っていたら日 …

attr_accessorでRuby文法を噛み締める

作りたいwebアプリがあって、プログラムやろう!となって現在にいたってる訳です。 …

no image
iPad2発表

新しいiPad2がAppleより発表されました。動作は速くHDMIをサポートし、 …