心はいつも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の<< には3つの用法あり。

先週の#yokohamarbペアプロ画面をみていて

Railsを立ち上げる

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

no image
iPhoneのメーラーが真っ黒になってしまった。

iPhoneのメーラーはiPhoneにデフォルトでついているメーラーを使っていま …

WordPressのテンプレートを自分で作ってみました

ブログ更新は久々になりました。この2週間、ずっとこのブログ用にWordPress …

no image
@で始まるのが インスタンス変数

@ で始まるのが インスタンス変数 大文字で始まるのが 定数 文法書のどこに書い …

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

5.4ユーザー登録: 最初のステップ、です。ようやく開発っぽくなってきます。 5 …

初めてのRuby2章「配列とハッシュ」

Railsだってgemの一種!ってことで、Rubyの文法からちゃんとやりたいです …

no image
Macでアプリを強制終了

Macでアプリを強制終了したことは今までなかったのですが、どうにもftpソフトの …

no image
iPhoneの月請求は8円のみです。

昨年11月に、e-mobileからiPhoneにMNPしました。 ちょうど、乗り …

no image
浅田真央ちゃんは今シーズンが最後!テレビチューナーにHDつけて録画する!

テレビ見なくなってはや10年以上。ただし、 *真央ちゃんを除く*です。 土曜日に …