今更ながらrspecとfactory_girlを使ってのテスト書き方

今更ですが、factory_girlでテストを書く時の記述例を示します。

 18 require 'spec_helper'
 19
 20 describe User do
 21
 22   let!(:user1) { FactoryGirl.create(:current_user) }
 23   let!(:auth_provider1) {  FactoryGirl.create(:current_user_auth_provider, user: user1) }
 24   let!(:photo1) { FactoryGirl.build(:current_user_photo1, user: user1) }
 25   let!(:photo2) { FactoryGirl.build(:current_user_photo1, user: user1) }
 26   let!(:photo3) { FactoryGirl.build(:current_user_photo1, user: user1) }
 27   let!(:photo4) { FactoryGirl.build(:current_user_photo1, user: user1) }
 28   let!(:photo5) { FactoryGirl.build(:current_user_photo1, user: user1) }
 29
 30   describe "check user photos" do
 31     fixtures :photos
 32
 33     context "check user photo" do
 34       before do
 35         @user = user1
 36       end
 37       it "check photo" do
 38         expect(@user.photos).not_to be_nil
 39       end
 40       it "photo count" do
 41         expect(@user.photos.count).to eql(Photo.where(user_id: @user.id).count)
 42       end
 43     end
 44   end
 45
 46   describe "group member" do
 47     fixtures :groups
 48
 49     context "user join the group" do
 50       before do
 51         @current_user = user1
 52         @group = Group.find(1)
 53       end
 54       it "group " do
 55         @current_user.groups << @group
 56         expect(@current_user.save).to be_truthy
 57         @user = User.find(@current_user.id)
 58         expect(@user.groups.size).to eql(1)
 59       end
 60     end
 61   end
 62
 63   describe "group save test" do
 64     context "group save error check" do
 65       before do
 66       end
 67       it "save test" do
 68         @group = Group.new
 69         expect(@group).not_to be_valid
 70         expect(@group.errors_on(:name).size).to eq(1)
 71       end
 72     end
 73   end
 74 end

実際factory_girlでテストデータを作成しているところはspec/factories/users.rbで

  1 FactoryGirl.define do
  2   factory :current_user, class: User  do
  3     name   'test_user'
  4     email   'test@gmail.com'
  5   end
  6 end

ちなみに話変わりますが、paperclipを使って画像アップロードしていたのですが、versionが4系になってから今までのテストが通らなくなりました。

「Paperclip::Errors::MissingRequiredValidatorError.」と出てしまいます。何かモデルにバリデーションを追加しろという情報があるようなので、やりましたら動かなかったです(やり方が違う??)

補足2/14 has_attached_fileメソッドの後にvalidates_attachment_content_typeを定義すること

参考;http://stackoverflow.com/questions/21508890/heroku-paperclip-weird-error-papercliperrorsmissingrequiredvalidatorerror