Factory-girl create that bypasses my model validation

后端 未结 9 2163
既然无缘
既然无缘 2021-01-30 06:31

I am using Factory Girl to create two instances in my model/unit test for a Group. I am testing the model to check that a call to .current returns only the \'current\' groups ac

9条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-30 06:54

    It is not best to skip all validation of that model.

    create spec/factories/traits.rb file.

    FactoryBot.define do
      trait :skip_validate do
        to_create { |instance| instance.save(validate: false) }
      end
    end
    

    fix spec

    describe ".current" do
      let!(:current_group) { FactoryGirl.create(:group, :skip_validate, :expiry => Time.now + 1.week) }
      let!(:expired_group) { FactoryGirl.create(:group, :skip_validate, :expiry => Time.now - 3.days) }
    
      specify { Group.current.should == [current_group] }
    end
    

提交回复
热议问题