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

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

RailsTutorial4.0を高速で復習する。4.1章の途中から。

   


さて、4.1章の途中にある、変だなと思っている箇所、

リスト4.4 Homeページのタイトル確認用にテストを更新する。
リスト4.5 ページタイトルをカスタマイズせずに表示するHomeページ。

です。

これは、
リスト4.4で、
it “should not have a custom page title”
というテストケースを追加しています。理由は、自作ヘルパーメソッドfull_titleで、
カスタマイズしたページの場合、:titleが空であることを書いているからです。その場合に対応したテストケースを書いています。

なので実行すると当然エラーです。だってカスタマイズしたページは今ないですから。

なので、わざわざリスト4.5で、homeページのprovide(:title, ‘Home’)を削除し、カスタマイズページにして、テストを通しています。

homeのタイトルから”|HOME”を削除するって、変ですよね??

、、、

と思っていましたが、今気づきました。Homeページは最終的にこのサービスのトップページになります。だから、|Homeは無くていいんです。サブページじゃないので。

あーすっきりした。
というわけでリスト4.4と4.5を実行します。

カスタマイズしたページのテストを書く

リスト4.4 Homeページのタイトル確認用にテストを更新する。Homeのタイトルはbaseタイトルだけになるので、タイトルのテストを書き換え、追加します。
spec/requests/static_pages_spec.rb

require 'spec_helper'

describe "静的ページのテスト" do
  let(:base_title) { "Ruby on Rails Tutorial Sample App" }

  describe "Homeページのテスト" do
    it "コンテンツに'Twili'という文字がある" do
      visit '/static_pages/home'
      expect(page).to have_content('Twili')
    end
    it "トップページのタイトル(サブタイトルがない)" do
      visit '/static_pages/home'
      expect(page).to have_title("#{base_title} ")
    end 
    it "カスタマイズしたページのタイトル(タイトルにHomeがない)" do
      visit '/static_pages/home'
      expect(page).not_to have_title('| Home')
    end  
  end
以下略

試験を実行すると、

bundle exec rspec spec/requests/static_pages_spec.rb

1) 静的ページのテスト Homeページのテスト カスタマイズしたページのタイトル(タイトルにHomeがない)
Failure/Error: expect(page).not_to have_title(‘| Home’)
expected #has_title?(“| Home”) to return false, got true

エラーになります。

Homeページをカスタマイズしてしまう

ゆくゆくはHomeページはトップページになるので、タイトルに|Homeいりません。なので削除します。他の静的ページにこの変更を加えていないのがミソですね。

リスト4.5 ページタイトルをカスタマイズせずに表示するHomeページ。
app/views/static_pages/home.html.erb

<h1>Twiliサービスへようこそ</h1>
<p>
This is the home page for the
  <a href="http://railstutorial.jp/">Ruby on Rails Tutorial</a>
sample application.
</p>

<% provide(:title, 'Home') %>を削除しました。
試験を実行すると、

bundle exec rspec spec/requests/static_pages_spec.rb

9 examples, 0 failuresで成功しました。

ここでいったんcommitしておきます。
つぎは、4.2文字列(string)とメソッド、です。

 - テクニカル ,

Message

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

  関連記事

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

9.2認可、です。 自分以外の人が自分のProfileを変更できないようにします …

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

9.2.3フレンドリーフォワーディング、です。 ログオンしていないユーザーが編集 …

もうあかん!Mac OSXのスクロールを逆にする

OSXのいつのバージョンからだっけ? スクロールの向きが突如逆になったんですよね …

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

仕様の探求 userモデルには、登録と認証、承認に必要なモデルは既に作ってありま …

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

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

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

4.6演習、です。4章がRubyの説明章だったので演習はRuby問題になっていま …

no image
retweetボタンを追加してみました

最近いろんなブログで見かけるretweetボタン。ブログのエントリーについている …

BD再生のオープンソース

メディアはシリコンすら持ちたくない主義なのですが、どうしてもBluelay Di …

no image
Ruby 1.9系をインストールする

Rubyのバージョン管理ができるrbenvをインストールしたらいよいよRubyの …

詳解 Objective-C 2.0 第3版 CHAPTER2 Objective-Cのプログラム

Objective-Cの解説はメッセージから始まる。このメッセージという概念、も …