心はいつも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
RailsTutorial4.0を高速で復習する。3.5章。

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

アイキャッチ画像のリサイズ

768 × 1024 pxの写真をアイキャッチに指定して、150pxにリサイズ表 …

no image
ブログデザイン変更しました

予告通り、本日中にブログのデザインを変更できました。WordPressのテーマT …

WordPressの管理画面真っ白問題に対処しました

WordPressの自作テンプレを作ったはいいものの、管理画面が真っ白になって投 …

RailsTutorial4.0を高速で復習する。またまた5.1.2章の途中から。

RailsTutorial4.0を高速で復習する。5.1.2章の途中から。です。 …

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

5.3レイアウトのリンク、です。 AboutはRailsらしくない、とおっしゃっ …

no image
RubyとRailsのお作法

コーディングスタイルって結構気になります。 最初につとめた会社で、プログラミング …

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

仕様の探求 userモデルには、登録と認証、承認に必要なモデルは既に作ってありま …

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

6.2.3長さを検証する、です。空データを拒否した次は、入力できるデータ長の制限 …

no image
ブログのデザイン開発、着手から完成まで今日1日でやります

久々のブログです。 昨日アクセス解析も1年ぶりに見たのですが、何がなくとも一定の …