我有这个模型代码:
validates_presence_of :setting_id
validates_presence_of :user_id
validates_presence_of :topic_id, if: :direct?
我有这些 rspec 测试:
it { should validate_presence_of :setting_id }
it { should validate_presence_of :user_id }
it { should validate_presence_of(:topic_id).if(:direct?) }
前 2 个测试工作正常。
最后一个给出错误:
undefined method 'if' for #<Shoulda::Matchers::ActiveModel::ValidatePresenceOfMatcher:0x007fda6a5c6268>
我如何为代码片段添加类似的测试以验证 (:topic_id).if(:direct?)
的最后存在?
最佳答案
从 shoulda-matchers 的源代码来看,似乎不支持 :if
条件。您将需要使用 direct?
方法的 stub 值手动测试它。
关于ruby - Rails rspec - 如何检查具有 ", if: :direct"子句的验证模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420027/