ChatGPT解决这个技术问题 Extra ChatGPT

Shoulda/RSpec 匹配器 - 条件验证

在我的代码中,我使用 Shoulda 匹配器进行了以下验证,效果很好:

it { should validate_presence_of(:name) }

在我的模型中,我已将条件添加到我的验证中:

validates_presence_of :name, :if => eligible?

是否可以在验证中反映它?

我尝试在 documentation 中查找应该匹配器,但无法找到解决方案。

非常感谢!


a
abhishek77in

shoulda_matchers 似乎没有这样做,但是自己编写它很容易::

  context "if eligible" do
    before { allow(subject).to receive(:eligible?).and_return(true) }
    it { should validate_presence_of(:name) }
  end

  context "if ineligible" do
    before { allow(subject).to receive(:eligible?).and_return(false) }
    it { should_not validate_presence_of(:name) }
  end

使用 RSpec 3:before { allow(subject).to receive(: eligible?).and_return(true) }

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅