Shoulda / RSpec匹配器 – 条件validation
在我的代码中,我有以下validation与Shoulda matchers,它工作正常:
it { should validate_presence_of(:name) }
在我的模型中,我已经添加了条件来validation:
validates_presence_of :name, :if => eligible?
有没有可能在validation中反映出来?
我已经尝试查看应用程序匹配器的文档 ,但一直无法find解决scheme。
非常感谢!
看起来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