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

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

  関連記事

no image
ToDoの管理方法

東大生はノートがきれいだとか、、 きれいに書いている暇があったら、頭に書いて覚え …

no image
G+ウィジェット設置してみました

(この投稿は別ブログameblo.jp/sweetfからの転載です) G+ウィジ …

格安で真央ごもりする浅田真央システム完成

さいたまスーパーアリーナでの世界選手権で、浅田真央ちゃんのショートプログラム世界 …

つながらないWimaxの電波倍返し

googleが見つかりませんと言われると、対外電波切れ。 本日は多発しています。 …

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

第6章ユーザーのモデルを作成する。です。ここから開発っぽくなってきます。って今ま …

WordPressのテンプレートを自分で作ってみました

ブログ更新は久々になりました。この2週間、ずっとこのブログ用にWordPress …

パーフェクトRuby 3章制御構造/メソッド/組み込み関数 3-1演算子

パーフェクトRuby2章の後は6章をやろうと思っていましたが、やっぱり順番にやっ …

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

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

no image
gamilアカウントが乗っ取られました

朝起きてすぐ行うメール確認。iphoneでgmail接続できないってエラーが出る …

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

7.3ユーザー登録失敗、です。 ここでは、エラーメッセージの表示を実装します。 …