私のコードでは、Shoulderマッチャーで次の検証を行いましたが、正常に機能します:
it { should validate_presence_of(:name) }
私のモデルでは、検証に条件を追加しました:
validates_presence_of :name, :if => eligible?
検証に反映させることはできますか?
Shoulda matcherの documentation を見てみましたが、解決策を見つけることができませんでした。
どうもありがとう!
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