【问题标题】:Rails rspec - how to check model for validation that has ", if: :direct" clauseRails rspec - 如何检查具有“,如果::直接”子句的验证模型
【发布时间】:2012-07-10 18:57:51
【问题描述】:

我有这个型号代码:

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?) 的最后存在验证添加类似的代码片段测试

【问题讨论】:

    标签: ruby validation rspec shoulda matcher


    【解决方案1】:

    从 shoulda-matchers 的源代码看来,:if 条件似乎不受支持。您需要使用 direct? 方法的存根值手动测试它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      相关资源
      最近更新 更多