心はいつも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

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

  関連記事

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

第10章ユーザーのマイクロポスト、です。 has_many、belongs_to …

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

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

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

8.2.5ユーザー登録と同時にサインインする、です。 ユーザーが登録を行った後、 …

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

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

rails gでのファイル名、クラス名、アクション名

rails gすると、コントローラーとアクションができますが、 その書き方とファ …

twitterと連携した写真のライブラリー

iPhoneを使うようになってから気軽に写真撮影し、そのままtwitter投稿す …

MacにGUIのSQLite3クライアントを入れる。

ターミナルからコマンドたたけばいいだけですが、DBスキーマをちょっと確認したいと …

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

8.2.1[このアカウント設定を保存する]、です。 RailsTutorial4 …

no image
ブログは独自ドメインの方が強いかもね

すっかり月一ペースで更新するブログになってしまい焦ります。 震災直後に政権批判し …

no image
MacBookAir 1日め

ようやくMacBookAir を購入しました。Dellノートがずっと調子悪かった …