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

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

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

   


3.5章は演習です。3問でています。最初の問題をやります。

1.サンプルアプリケーションにContact (問い合わせ先) ページを作成してください。リスト3.19に従い、最初に、タイトルが “Ruby on Rails Tutorial Sample App | Contact” となっているかどうかを確認するテストを作成し、それによってURLが/static_pages/contactのページが存在することを確認するテストを作成してください。次に、リスト 3.30の内容をContactページに反映し、これらのテストにパスするようにしてください。(この演習の解答は5.3の説明に含まれています)。

contactのテストコードを作る

spec/requests/static_pages_spec.rbにContactのテストコードを追加します。

require 'spec_helper'

describe "静的ページのテスト" do

  describe "Homeページのテスト" do
 #途中省略、以下追加
  describe "Contactページのテスト" do
    it "コンテンツに'Contact'という文字がある" do 
      visit '/static_pages/contact'
      expect(page).to have_content('Contact')
    end
    it "タイトルに'Contact'という文字がある" do
      visit '/static_pages/contact'
      expect(page).to have_title("Ruby on Rails Tutorial Sample App | Contact")
    end
  end
end


テストを実行する

bundle exec rspec spec/requests/static_pages_spec.rb

1) 静的ページのテスト Contactページのテスト コンテンツに'Contact'という文字がある
Failure/Error: visit '/static_pages/contact'
ActionController::RoutingError:
No route matches [GET] "/static_pages/contact"
# ./spec/requests/static_pages_spec.rb:40:in `block (3 levels) in '

2) 静的ページのテスト Contactページのテスト タイトルに'Contact'という文字がある
Failure/Error: visit '/static_pages/contact'
ActionController::RoutingError:
No route matches [GET] "/static_pages/contact"
# ./spec/requests/static_pages_spec.rb:44:in `block (3 levels) in '

8 examples, 2 failuresになりました。

rails gでContactを作る

本当はrails gではやっちゃダメで、手作業でいっこいっこ追加すべきだったかなと思います。いいんです、やってみたかったので。

rails g controller StaticPages contact --no-test-framework

すると、conflictだと言われましたが、面倒なので強制実行。
その後、
static_pages_controller.rbにはcontactしかなくなったので、home,help,aboutも追加しました。

contactのviewを変更

リスト3.30 Contactページで使用するコンテンツのコード。
app/views/static_pages/contact.html.erb
としてチュートリアルに答えがかいてあります。

<% provide(:title, 'Contact') %>
<h1>Contact</h1>
<p>
  Contact Ruby on Rails Tutorial about the sample app at the
  <a href="http://railstutorial.jp/contact">contact page</a>.
</p>

テストを実行する

bundle exec rspec spec/requests/static_pages_spec.rb

8 examples, 0 failuresでした。

2もんめは次やります。
commitしておきます。

 - テクニカル ,

Message

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

  関連記事

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

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

初めてのRuby2章 2.2ハッシュ

ハッシュ ハッシュとは、オブジェクトにキーを対応させたもの。 C++,Javaで …

初めてのRuby8章「オブジェクトとクラス」

2章「配列とハッシュ」の次はいきなり8章「オブジェクトとクラス」に行ってしまいま …

WindowsキーボードをMacで使う

キーボード難民です。Mac miniでApple純正のキーボードを使っていました …

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

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

Railsを立ち上げる

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

初めてのRuby8章 8.2変数と定数

8.2 変数と定数 8.2.1 インスタンス変数 @で始まるのがインスタンス変数 …

no image
あんたのrakeは新しいけど古いのが必要なんだよっ!!と怒られた

Mavericksってrubyが2.0になったんですね。 てのはおいといて、 r …

no image
MavericksアップデートしRuby2.0+Rails4.0.2にversion upする

何を今さら感ですが、MacはAirとMiniの2台持ちです。Airのほうを人柱と …

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

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