2013年7月8日月曜日

Rails4でRSpec(2) ヘ(^o^)ノ

昨日のBlogで少しきになるところがあったのでリファクタリング

spec/factories/users.rb
FactoryGirl.define do
  factory :user, :password, class: User do |f|
    sequence(f.login_name) { |n| "user_name_#{n}" } 
    f.password_confirmation { |u| u.password }
    f.admin true
  end
end

spec/models/user_spec.rb
require 'spec_helper'

describe User do
  describe '#validate' do 

    it "正常に保存できる" do
      @user = FactoryGirl.build(:user, password: 'murajun1978')
      expect(@user.save).to be true
    end

    context 'login_name' do
      before :all do
        @user = FactoryGirl.build(:user)
      end

      it "login_nameは数字のみは不可" do
        @user.login_name = "111"
        expect(@user.save).to be false
      end

      it "login_nameは英字のみは不可" do
        @user.login_name = "eee"
        expect(@user.save).to be false
      end

      it "login_nameの先頭は必ず英字" do
        @user.login_name = "111aaa"
        expect(@user.save).to be false
      end

      it "login_nameは必須" do
        @user.login_name = ""
        expect(@user.save).to be false
      end

      it "login_nameは重複不可" do
        @user = FactoryGirl.build(:user, login_name: 'user_name_1')
        expect(@user.save).to be false
      end
    end

    after :all do
      User.delete_all
    end
  end
end

Factory_Girlを少しシンプルにしてみましたヘ(^o^)ノ

login_nameは連番(user_name_1..user_name_2.. みたいな)

いい感じになったかな?

( ̄(エ) ̄)彡☆

0 件のコメント:

コメントを投稿