心はいつも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を変更できないようにします …

WordPress子テーマの作り方

デザイン変更したairpucci、TwentyTwelveというWordPres …

no image
RailsTutorial4.0を高速で復習する。5.6章。演習1問目。

5.6演習です。 一問目。 リスト5.28の静的ページのテストコードは簡潔ですが …

no image
createとnew

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

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

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

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

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

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

10.1.4マイクロポストを改良する、です。 has_many関連付けしたので、 …

no image
rbenvとruby-buildのインストール

諸々のものをインストールしたら、次はHomebrewを使ってrbenvとruby …

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

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

no image
Railsの%

Rubyの%じゃなくてRailsの%です。 RailsではSQLを生成するwhe …