gpt4 book ai didi

ruby-on-rails - Factory-girl 创建绕过我的模型验证

转载 作者:行者123 更新时间:2023-12-03 05:28:16 25 4
gpt4 key购买 nike

我正在使用 Factory Girl 在我的模型/单元测试中为一个组创建两个实例。我正在测试模型以检查对 .current 的调用是否根据到期属性仅返回“当前”组,如下所示...

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

specify { Group.current.should == [current_group] }
end

我的问题是,我在模型中进行了验证,检查新组的到期日期是否在今天之后。这会引发下面的验证失败。

  1) Group.current 
Failure/Error: let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now - 3.days) }
ActiveRecord::RecordInvalid:
Validation failed: Expiry is before todays date

有没有办法强制创建组或在使用 Factory Girl 创建时绕过验证?

最佳答案

这对于 FactoryGirl 来说并不是很具体,但在通过 save(validate: false) 保存模型时,您始终可以绕过验证:

describe ".current" do
let!(:current_group) { FactoryGirl.create(:group) }

let!(:old_group) do
g = FactoryGirl.build(:group, expiry: Time.now - 3.days)
g.save(validate: false)
g
end

specify { Group.current.should == [current_group] }
end

关于ruby-on-rails - Factory-girl 创建绕过我的模型验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com