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

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

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

      2014/01/25


6.2.2プレゼンスを検証する、です。いよいよモデルにコードを書いていきます。
RailsTutorialでは、まず失敗するコードを書くための勉強として、モデルにコードを書いてかからテストを書き、パスするか確認したうえで、モデルのコードをコメントアウトしテストが失敗することを確認しています。
七面倒くさいので、ますテストを書きます。

Userのテストを書く

リスト6.8 name属性の検証に対する、失敗するテスト。
リスト6.9 email属性の存在性のテスト。
spec/models/user_spec.rb

require 'spec_helper'

describe User do

  before do
    @user = User.new(name: "Example User", email: "user@example.com")
  end
  subject { @user }

  #name属性のデータがある
  it { should respond_to(:name) }
  #email属性のデータがある
  it { should respond_to(:email) }
  #@userがvalidである
  it { should be_valid }

  describe ":nameが空の場合のテスト" do
    before { @user.name = " " }
    #validではないと検証する
    it { should_not be_valid }
  end
  describe ":emailが空の場合のテスト" do
    before { @user.email = " " }
    #validではないと検証する
    it { should_not be_valid }
  end
end

実行すると、
User :nameが空の場合のテスト 、User :emailが空の場合のテスト
のエラーは出ましたが、
it { should be_valid }
のエラーは出ません。rails g modelsの時にできてしまっているからですね。

モデルの属性と、生成したオブジェクトが有効かどうかのテストはrails gする前に書くんですかねぇ。

Userを実装する

Userの:nameが空の場合のテストが失敗するってことは、:nameが空でもデータ登録できてしまうってことで、それは嫌です。なのでUserにコードを書いて、空データだとはじくようにしたいです。

リスト6.10 name属性とemail属性の存在性を検証する。
app/models/user.rb

class User < ActiveRecord::Base
  validates :name,  presence: true
  validates :email, presence: true
end

テストはパスしました。

次は、
6.2.3長さを検証する
です。

 - テクニカル ,

Message

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

  関連記事

Railsを立ち上げる

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

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

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

no image
iPhoneの月請求は8円のみです。

昨年11月に、e-mobileからiPhoneにMNPしました。 ちょうど、乗り …

no image
データベースのリファクタリング?

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

no image
恐ろしや、WordPressのDBパスワードは平文でおいてある

先ほどサーバーのDBをいじっていてですね、、久々だったのでDBパスワード忘れてし …

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

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

no image
iPhone充電3回分?大容量バッテリーで残念がなくなりました

iPhoneは便利なので、一日中使いっ放しの日がよくあります。iPhoneがあれ …

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

7.2ユーザー登録フォーム、です。 ユーザー認証も登録も、モデルは作ってあるので …

no image
future vision 2019 vs 2010

マイクロソフトのfuture visonが話題らしい。 2019年の近未来。 情 …

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

9.1.2編集の失敗、です。 テストを書きます リスト9.9 ユーザーupdat …