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

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

  関連記事

Ruby on Railsを4.1.0にバージョンアップする

真央ロス真央廃を超えた腐まお状態な1ヶ月1週間、まるで娘が嫁に行った父親のごとし …

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

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

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

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

パーフェクトRuby 2章Rubyの基礎 2-3 条件分岐と真偽値

p50 2-3 条件分岐と真偽値 falseとnil以外は全部true p51 …

初めてのRuby8章 8.4特異メソッドと特異クラス

特異メソッドと特異クラス プログラムなんて、クラスの継承だけで書けてしまうのが良 …

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

3.3.2タイトルのテストをパスさせる。です。 ひとまず、静的ページをhtmlの …

no image
Ruby on Railsのインストール

Rubyのアップデートが終わったので、いよいよRailsをインストールします。 …

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

9.3.2サンプルのユーザー、です。 Faker gemで、実際にありそうなユー …

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

3.5章は演習です。3問でています。最初の問題をやります。 1.サンプルアプリケ …

WordPress親テーマversion upに伴う、子テーマのバージョンアップ作業

WordPress子テーマの作り方で書いた通り、airpucciの現在のテーマは …