Ruby Rails rspec-如何检查具有;,如果::直接;条款

Ruby Rails rspec-如何检查具有;,如果::直接;条款,ruby,validation,rspec,shoulda,matcher,Ruby,Validation,Rspec,Shoulda,Matcher,我有这个模型代码: 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

我有这个模型代码:

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?) } 
前两个测试工作正常。 最后一个错误为:
#


如何为
(:topic_id)的最后一次验证添加类似的代码片段测试。如果(:direct?
来自shoulda matchers的源代码,它看起来像
:if
条件不受支持。您需要使用
direct?
方法的存根值手动测试此操作