3

我有这个模型代码:

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?)

4

1 回答 1

2

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

于 2012-07-11T05:09:54.837 回答