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

it { should validate_presence_of(:name) }

在我的模型中,我将条件添加到了验证中:
validates_presence_of :name, :if => eligible?

是否可以在验证中反射(reflect)出来?

我曾尝试在documentation中查找应有的匹配项,但未能找到解决方案。

非常感谢!

最佳答案

看起来似乎不应该这样做,但是自己编写它很容易:

  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

07-26 07:14