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

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

  関連記事

ジョジョ専用kindle fire HDの電源が入らない!

電源が入らない!MacBookAirが真っ黒になりました。とか、 iPhoneの …

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

テストコードが長くなったからリファクタリングするかも、、といいながら、静的ページ …

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

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

no image
railsのエラーメッセージを日本語化

message:で渡すエラーメッセージや、その他いろんな箇所を日本語化します。 …

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

8.3Cucumberの紹介 (オプション) Cucumberは振舞駆動開発用の …

no image
ヘルパーメソッドを自作する

便利なrailsのヘルパーメソッド。自分でも作れます。 作るときは、 アプリのd …

no image
RailsTutorial4.0を高速で復習する。終わりました。

作りたいサービスがあってコーディング開始していたのですが、もう1回振り返り学習し …

no image
RailsTutorial4.0を高速で復習する。3.5章。つづき。

3.5演習の2もんめをやります。 2.お気付きの方もいると思いますが、リスト3. …

パーフェクトRuby 2章Rubyの基礎 2-6 モジュール

p57 2-6 モジュール 2-6-1モジュールの定義式 モジュールはインスタン …

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

演習1問目。 リスト6.20の、メールアドレスを小文字に変換するコードに対するテ …