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

3.3.2タイトルのテストをパスさせる。です。 ひとまず、静的ページをhtmlの …

Google Webfont使ってみたよ

地元に戻ってきてまず思ったのは「観光サイトを立ち上げたい」ということ。いや、観光 …

no image
もう一度、Future Vision

2019年の世界。あと7年。 登場人物に日本人がいない事にも注目してほしい。 関 …

WordPress親テーマversion upに伴う、子テーマのバージョンアップ作業

WordPress子テーマの作り方で書いた通り、airpucciの現在のテーマは …

パーフェクトRuby 2章Rubyの基礎 2-2 変数と定数

p47 2-2-1 ローカル変数 スコープは ・ブロック内 ・メソッド定義内 ・ …

no image
RailsTutorial4.0を高速で復習する。3.5章。最後の問題。

3.5演習、3もんめ、最後の問題です。 3.(上級者向け)「Heroku pag …

no image
createとnew

ruby on rails3プリケーションプログラミングの本の内容をruby2. …

Objective-C苦節3ヶ月アプリ作れるようになった

このブログairpucci.comのメニューにアプリ開発追加しました。 昨年秋よ …

no image
iPhoneのKindleアプリでChip Conley氏の本を読んでみました。その2

iPadの発売がようやく発表されました。私個人としては読書端末としての利用を期待 …

no image
iPhone充電3回分?大容量バッテリーで残念がなくなりました

iPhoneは便利なので、一日中使いっ放しの日がよくあります。iPhoneがあれ …